从python中未知数量的列表创建所有可能的字符组合

时间:2017-11-28 19:55:41

标签: python string list char combinatorics

我想从列表中创建所有可能的字符组合。第一个char需要来自第一个数组,第二个char需要来自第二个数组,等等。

如果我有以下清单:

char1 = ['a','b','c']
char2 = ['1','2']

可能的字符串是:a1,a2,b1,b2,c1和c2。 如何使用未知大小的未知数量的列表制作所有组合?

问题在于我不知道会有多少个列表。当代码正在运行时,列表的数量将由用户决定。

1 个答案:

答案 0 :(得分:0)

如上所述,您可以使用itertools.product()

由于你不知道列表的数量,你可以将列表列表作为参数传递:

import itertools

lists = [
    ['a','b','c'],
    ['1','2']
]

["".join(x) for x in itertools.product(*lists)]

结果:

['a1', 'a2', 'b1', 'b2', 'c1', 'c2']