15

I have the following structure in Python:

letters = [['a', 'b', 'c'], ['p', 'q', 'r', 's'], ['j', 'k', 'l']]

I would like to find all the possible combinations of letters in the order that they currently exist. For the example above this would be:

apj
apk
apl
aqj
aqk
aql
...
csk
csl

This seems like it should be a very simple thing to do but I cannot figure it out.

Peter Horne
  • 5,606
  • 7
  • 33
  • 49

1 Answers1

14

In Python 2.6 or newer you can use itertools.product:

>>> import itertools
>>> map(''.join, itertools.product(*letters))
apj
apk
apl
aqj
aqk
aql
...etc...
csk
csl
Mark Byers
  • 767,688
  • 176
  • 1,542
  • 1,434