计算多个列表中所有可能的组合

时间:2019-02-22 15:19:51

标签: python python-3.x itertools

我有以下列表:

list_a = set(["A", "B", "C", "D", "E", "F"])
list_b = set(["1", "2", "3", "4", "5", "6"])
list_c = set(["red", "yellow", "blue", "green"])  

我想找到这些列表的可能组合总数(每个列表一项)

使用较小的列表即可轻松实现

import itertools as it

list_set = [list_a, list_b, list_c] 

len(list(it.product(*list_of_unq_vars)))

这将返回组合的数量。

但是对于较大的列表,我遇到了内存错误。

有没有一种方法可以以这种方式计算可能的组合数量而无需实际创建组合本身(如我上面所做的那样)?

非常感谢, J

1 个答案:

答案 0 :(得分:5)

您需要做的就是将每个列表的长度相乘以获得可能的组合总数:

tempcomb = 1
for l in list_set:
    tempcomb *= len(l)
print(tempcomb)