计算可以分配某些变量的所有方式的最佳方法

Opt*_*mus 0 python combinations list

我有一定数量的变量,每个变量都能达到某些值,我需要计算这些变量的所有可能方式.例如,如果我有 -

variable_values = [[0], [0, 1], [0, 1, 2], [1, 2]]
Run Code Online (Sandbox Code Playgroud)

即变量1可以是0; 变量2可以是; 01变量3可以是0,12; 变量4可以是12.

所以,所有可能的价值集都是 -

possible_value_sets = [
    [0, 0, 0, 1],
    [0, 0, 1, 1],
    [0, 0, 2, 1],
    [0, 1, 0, 1],
    [0, 1, 1, 1],
    [0, 1, 2, 1],
    [0, 0, 0, 2],
    [0, 0, 1, 2],
    [0, 0, 2, 2],
    [0, 1, 0, 2],
    [0, 1, 1, 2],
    [0, 1, 2, 2],
]
Run Code Online (Sandbox Code Playgroud)

在python中计算所有可能值集的最佳方法是什么?

fal*_*tru 5

你可以使用itertools.product:

>>> variable_values = [[0], [0, 1], [0, 1, 2], [1, 2]]
>>> import itertools
>>> list(itertools.product(*variable_values))
[(0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 1, 1), (0, 0, 1, 2), (0, 0, 2, 1),
 (0, 0, 2, 2), (0, 1, 0, 1), (0, 1, 0, 2), (0, 1, 1, 1), (0, 1, 1, 2),
 (0, 1, 2, 1), (0, 1, 2, 2)]
Run Code Online (Sandbox Code Playgroud)