Is there any canned iterator adaptor that will transform: in = [1,2,3....] into: out = [(1,2,3,4), (5,6,7,8),...] That is, each time next() is called, a tuple of the next N items is returned.