在尝试编写真值表生成函数的代码时,出现了这个问题。
如何生成所有长度为n的True和False排列组合的列表?换句话说,给定一个元素列表
例如:
如何生成所有长度为n的True和False排列组合的列表?换句话说,给定一个元素列表
[True, False]
,如何生成这些元素所有可能的长度为n的排列组合的所有排列?例如:
n=2
长度为2的排列组合是:[[True, True], [True, False], [False, True], [False, False]]
n=3
长度为3的排列有:
[[False, False, False],[False,False,True],
[False,True,False],[False,True,True],
[True,False,False],[True,False,True],[True,True,False],[True,True,True]]
我知道在这个列表中有2^n种可能性。我也考虑过使用itertools.product
,但那只能给出特定组合的排列。在这种情况下,我想要生成长度为n的true/false列表的所有组合的排列。
itertools
模块中还有其他函数。 - Klaus D.[True, False]
)与自身进行n
次笛卡尔积的结果。 - Karl Knechtel