使用 python 的值列表中随机值的所有排列

All permutations of random value within list of values using python

我需要使用 python(考虑 itertools)达到以下结果,我有 4 行,每行都可以获得一个值 = ['v1'、'v2'、'v3'],因为我们有 3 个选项和 4 行,那么可能性的数量将是 3^4 = 81

例如:

    col1  col2  col3 ....... col81  
1    v1    v1    v_  
2    v2    v3
3    v1    v2
4    v3    v1

我怎样才能实现它,以涵盖所有可能性的方式?

您似乎在寻找“产品”而不是“排列”。试试这个:

import itertools
from pprint import pprint

v = [1, 2, 3]

pprint(list(itertools.product(v, repeat=4)))
[(1, 1, 1, 1),
 (1, 1, 1, 2),
 (1, 1, 1, 3),
 (1, 1, 2, 1),
 (1, 1, 2, 2),
...
 (3, 3, 2, 3),
 (3, 3, 3, 1),
 (3, 3, 3, 2),
 (3, 3, 3, 3)]

如果你需要转置它,你可以这样做:

import itertools
from pprint import pprint

v = [1, 2, 3]

product = list(itertools.product(v, repeat=4))
transpose = list(map(list, zip(*product)))
pprint(transpose)