On Jan 16, 11:15 am, breal <[EMAIL PROTECTED]> wrote: > I have three lists... for instance > > a = ['big', 'small', 'medium']; > b = ['old', 'new']; > c = ['blue', 'green']; > > I want to take those and end up with all of the combinations they > create like the following lists > ['big', 'old', 'blue'] > ['small', 'old', 'blue'] > ['medium', 'old', 'blue'] > ['big', 'old', 'green'] > ['small', 'old', 'green'] > ['medium', 'small', 'green'] > ['big', 'new', 'blue'] > ['small', 'new', 'blue'] > ['medium', 'new', 'blue'] > ['big', 'new', 'green'] > ['small', 'new', 'green'] > ['medium', 'new', 'green' ] > > I could do nested for ... in loops, but was looking for a Pythonic way > to do this. Ideas?
I would probably just create a generator: def permute(a,b,c): for x in a: for y in b: for z in c: yield [x,y,z] all_combos = list(permute( ['big', 'small', 'medium'], ['old', 'new'], ['blue', 'green'])) print all_combos I'm using nested for loops, but I sure find it easy to read that way. Though, using list comprehension does pretty much the same thing. It appears that Tim Chase has posted a more generic version of the above. Matt -- http://mail.python.org/mailman/listinfo/python-list