Michael> There are several different possible approaches in pure Python, Michael> but is this an idea that has legs ? Why not add it to itertools? Then, if you need a true list, just call list() on the returned iterator. Skip