Как я могу найти все возможные комбинации списка списков (в Python)?

У меня есть следующая структура в Python:

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

Я хотел бы найти все возможные комбинации букв в том порядке, в котором они в настоящее время существуют. Для примера выше это будет:

apj
apk
apl
aqj
aqk
aql
...
csk
csl

Кажется, что это должно быть очень просто, но я не могу понять.

Ответы

Ответ 1

В Python 2.6 или новее вы можете использовать itertools.product:

>>> import itertools
>>> map(''.join, itertools.product(*letters))
apj
apk
apl
aqj
aqk
aql
...etc...
csk
csl