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
  • 6,472
  • 7
  • 39
  • 50

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
  • 811,555
  • 193
  • 1,581
  • 1,452