In itertools
there\'s chain
, which combines multiple generators in a single one, and in essence does a depth-first iteration over them, i.e., cha
Not sure if you'd still consider this too "verbose"...
def chain_bfs2(*generators):
generators = map(iter, generators)
while generators:
for i, generator in enumerate(generators):
try:
yield generator.next()
except StopIteration:
del generators[i]
print list(chain_bfs2('AB', '123')) # ['A', '1', 'B', '2', '3']