2010-06-07 46 views
15

我有以下結構的Python:如何查找列表列表(使用Python)的所有可能組合?

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

我想找到他們目前存在的順序字母的所有可能的組合。對於上面的例子,這將是:

apj 
apk 
apl 
aqj 
aqk 
aql 
... 
csk 
csl 

這似乎應該是一個非常簡單的事情,但我無法弄清楚。

+0

我們可以假設值已在各列表內定購? – wcm 2010-06-07 13:49:38

+0

你使用的是什麼版本的Python? – 2010-06-07 13:52:07

+0

@wcm:沒有,單個列表中的值沒有排序。 – 2010-06-07 13:54:21

回答

14

在Python 2.6或更新版本,您可以使用itertools.product

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

而在較老的Pythons中,你可以從'itertools'文檔複製'product'的純Python實現。 – 2010-06-07 14:07:24

相關問題