One of the less well known features of Python is that you can have more for clauses in a generator expression. Very useful for flattening nested lists, like those you get from zip()/izip().
def imerge(*iterators):
return (value for row in itertools.izip(*iterators) for value in row)