如何在python中生成值为n的两个数字的所有可能排列?

时间:2019-05-29 16:21:55

标签: python list permutation

我想在python代码中获得两个数字的排列,最多重复n次。

示例:

a = 10, b = 100 and given n = 3

现在我想要输出:

(10, 10, 10),
(10, 10, 100),
(10, 100, 10),
(10, 100, 100),
(100, 10, 10),
(100, 10, 100),
(100, 100, 10),
(100, 100, 100)

我尝试过itertools排列,但不会有帮助。任何人请给我一个解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用itertools:

from itertools import product

nums = [10, 100]
n = 3

ans = list(product(nums, repeat=n))
print(ans)

答案 1 :(得分:1)

您可以使用itertools.product并将repeat设置为3:

from itertools import product
a, b = 10, 100
n = 3

list(product([a,b], repeat=n))

[(10, 10, 10),
 (10, 10, 100),
 (10, 100, 10),
 (10, 100, 100),
 (100, 10, 10),
 (100, 10, 100),
 (100, 100, 10),
 (100, 100, 100)]