Chris Fuller wrote: > This is a good case for recursion. My solution is in two steps. > Here is the code: > > def recursion_is_your_friend(l): > if len(l) == 1: > return l > else: > return [ (i, recursion_is_your_friend(l[1:])) for i in l[0] ] > > l = recursion_is_your_friend([['a','b'],['c','d','e'],['f'],['g','h']])
> The next step is to trace all the paths from the root to the leaves. You don't have to do this in two steps, you can generate the desired list directly. For example: def recursion_is_your_friend(l): if not l: return [[]] else: values = [[i] + value for i in l[0] for value in recursion_is_your_friend(l[1:]) ] return values print recursion_is_your_friend([['a','b'],['c','d','e'],['f'],['g','h']]) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor