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

JDr*_*per 0 python python-itertools python-3.x

我有这些清单:

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"])  
Run Code Online (Sandbox Code Playgroud)

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

使用较小的列表很容易实现这一点

import itertools as it

list_set = [list_a, list_b, list_c] 

len(list(it.product(*list_of_unq_vars)))
Run Code Online (Sandbox Code Playgroud)

这将返回组合的数量.

但是对于较大的列表,我遇到了一个记忆错误.

有没有办法以这种方式计算可能的组合数而不实际创建组合(如上所述)?

非常感谢,J

Hoo*_*oog 5

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

tempcomb = 1
for l in list_set:
    tempcomb *= len(l)
print(tempcomb)
Run Code Online (Sandbox Code Playgroud)