我有一个这样的列表:
l = [['a', 'b', 'c'], ['a', 'b'], ['g', 'h', 'r', 'w']]
Run Code Online (Sandbox Code Playgroud)
我想从每个列表中选择一个元素并将它们组合成一个字符串.
例如:'aag','aah','aar','aaw','abg','abh'....
但是,在程序运行之前,列表l的长度和每个内部列表的长度都是未知的.那我怎么能想要我想要的?
如果有人对算法感兴趣,这是使用递归来查找组合的一种非常简单的方法:
l = [['a', 'b', 'c'], ['a', 'b'], ['g', 'h', 'r', 'w']]
def permu(lists, prefix=''):
if not lists:
print prefix
return
first = lists[0]
rest = lists[1:]
for letter in first:
permu(rest, prefix + letter)
permu(l)
Run Code Online (Sandbox Code Playgroud)