创建2 ^ n个Python组合

Ber*_*y24 -1 python combinations

我在上学的Python项目遇到一些麻烦。我对Python的经验很少,这给我确定如何准确解决此问题带来了麻烦。
我需要创建2 ^ n布尔值的布尔值的所有可能状态(组合)。

因此,对于n = 3,我需要表示:
(True, False, False)
(True, True, False)
(True, True, True)
etc。最多所有8种组合。

但是我真的不知道如何在python中执行此操作。我知道必须有嵌套的for循环,并且我会将组合表示为列表列表,但这就是我想出的全部。有什么帮助吗?

Séb*_*ans 5

>>> import itertools
>>> n=3
>>> list(itertools.product([True, False], repeat=n))
[(True, True, True), (True, True, False), (True, False, True), (True, False, False), (False, True, True), (False, True, False), (False, False, True), (False, False, False)]
Run Code Online (Sandbox Code Playgroud)

我知道最好教你如何钓鱼,所以我建议阅读itertools文档,它经常很方便。