0

Possible Duplicate:
How to generate all permutations of a list in Python

I want to find all the permutations of a the elements in a list. but then with some conditions imposed.. umm.. Probably an example will help me explain better.

I have four lists

["1"],["0"],["a","b","c],["d","e","f"]

Now I want to have the permutations in following way:

 "10ad" ,"10bd","10cd","10ae", "10be"
 ,"10bf"..

and so on..

So basically every element (with every element)?? Now I know the very naive way to do this. But what is the pythonic way to do this? if there is any?? Any suggestions

Thanks

Community
  • 1
  • 1
frazman
  • 32,081
  • 75
  • 184
  • 269

1 Answers1

4

I think you want to use the itertools module, which is part of the standard Python distribution.

For example:

import itertools

a = ["1"]
b = ["0"]
c = ["a","b","c"]
d = ["d","e","f"]

for item in itertools.product(a, b, c, d): 
    print(item)

Edit: To be clear, the itertools.product function provides all combinations for all items in the inputted lists, not permutations. But based on OP's wording, I think this is what he/she actually wants.

Brendan Wood
  • 6,220
  • 3
  • 30
  • 28
  • 1
    Great answer. This returns tuples, so slight adjustment to exactly match the question would be something like: `for item in itertools.product(a,b,c,d): print '%s%s%s'%item` – Collin Green Apr 06 '12 at 03:05
  • 2
    Or alternatively, if you want a list of strings, you can just `''.join(item)` – Casey Kuball Apr 06 '12 at 04:05