A custom generator will do nicely:
Py> def flatten(seq): ... for x in seq: ... if hasattr(x, "__iter__"): ... for y in flatten(x): ... yield y ... else: ... yield x
Avoiding LBYL gives you: def flatten(seq): for x in seq: try: for y in flatten(x): yield y except TypeError: yield x
--Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list