efficient (fast) way to iterate over objects. Itertools works like a generator. If you wrap an object using itertools, every time you read from that object, it is like popping from a stack. You generate another output. >>> letters = ['a', 'b', 'c', 'd', 'e', 'f'] >>> booleans = [1, 0, 1, 0, 0, 1] >>> decimals = [0.1, 0.7, 0.4, 0.4, 0.5] >>> itertools.chain(letters, booleans, decimals)