[英]Having problems with python permutations
我在排列方面遇到问题! 对于python我是一个非常大的菜鸟,所以任何帮助将不胜感激!
可以说我在一个文本文件中有一个列表,范围从1-6,所以例如,它看起来像(1,2,3,4,5,6)我想打开所说的.txt文件并计算N的所有可能组合这6个数字中的最多N = 4。
当我使用itertools排列时
import itertools
x = [1, 2, 3, 4, 5, 6]
[p for p in itertools.product(x, repeat=2)]
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2,
2), (2, 3),
(2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3,
5), (3, 6),
(4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5,
2), (5, 3),
(5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6,5),
(6, 6)]
它输出这样的数字,我不是真正想要的,因为我一次只能得到一个数字的所有组合-但是我希望所有N个数字的所有可能组合,N的范围是1-4,包括重复如:
(1,1), (1,1,1) (1,1,1,1), (1,1,1,1)
因此,我希望它具有重复性,具有具有不同数量成员的组合,但是不要超过该数字的4种组合。 我真的很想这个概念! 如果有什么不合理的地方,不要犹豫,问我:)
from itertools import product
LIMIT = 4
l1 = [1,2,3]
results = []
for i in range(1, LIMIT+1):
results.extend(product(l1, repeat=i))
print(results)
将产生:
[(1,), (2,), (3,),
(1, 1), (1, 2), (1, 3),
(2, 1), (2, 2), (2, 3),
(3, 1), (3, 2), (3, 3),
(1, 1, 1), (1, 1, 2), (1, 1, 3),
(1, 2, 1), (1, 2, 2), (1, 2, 3),
(1, 3, 1), (1, 3, 2), (1, 3, 3),
(2, 1, 1), (2, 1, 2), (2, 1, 3),
(2, 2, 1), (2, 2, 2), (2, 2, 3),
(2, 3, 1), (2, 3, 2), (2, 3, 3),
(3, 1, 1), (3, 1, 2), (3, 1, 3),
(3, 2, 1), (3, 2, 2), (3, 2, 3),
(3, 3, 1), (3, 3, 2), (3, 3, 3),
(1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3),
(1, 1, 2, 1), (1, 1, 2, 2), (1, 1, 2, 3),
(1, 1, 3, 1), (1, 1, 3, 2), (1, 1, 3, 3),
(1, 2, 1, 1), (1, 2, 1, 2), (1, 2, 1, 3),
(1, 2, 2, 1), (1, 2, 2, 2), (1, 2, 2, 3),
(1, 2, 3, 1), (1, 2, 3, 2), (1, 2, 3, 3),
(1, 3, 1, 1), (1, 3, 1, 2), (1, 3, 1, 3),
(1, 3, 2, 1), (1, 3, 2, 2), (1, 3, 2, 3),
(1, 3, 3, 1), (1, 3, 3, 2), (1, 3, 3, 3),
(2, 1, 1, 1), (2, 1, 1, 2), (2, 1, 1, 3),
(2, 1, 2, 1), (2, 1, 2, 2), (2, 1, 2, 3),
(2, 1, 3, 1), (2, 1, 3, 2), (2, 1, 3, 3),
(2, 2, 1, 1), (2, 2, 1, 2), (2, 2, 1, 3),
(2, 2, 2, 1), (2, 2, 2, 2), (2, 2, 2, 3),
(2, 2, 3, 1), (2, 2, 3, 2), (2, 2, 3, 3),
(2, 3, 1, 1), (2, 3, 1, 2), (2, 3, 1, 3),
(2, 3, 2, 1), (2, 3, 2, 2), (2, 3, 2, 3),
(2, 3, 3, 1), (2, 3, 3, 2), (2, 3, 3, 3),
(3, 1, 1, 1), (3, 1, 1, 2), (3, 1, 1, 3),
(3, 1, 2, 1), (3, 1, 2, 2), (3, 1, 2, 3),
(3, 1, 3, 1), (3, 1, 3, 2), (3, 1, 3, 3),
(3, 2, 1, 1), (3, 2, 1, 2), (3, 2, 1, 3),
(3, 2, 2, 1), (3, 2, 2, 2), (3, 2, 2, 3),
(3, 2, 3, 1), (3, 2, 3, 2), (3, 2, 3, 3),
(3, 3, 1, 1), (3, 3, 1, 2), (3, 3, 1, 3),
(3, 3, 2, 1), (3, 3, 2, 2), (3, 3, 2, 3),
(3, 3, 3, 1), (3, 3, 3, 2), (3, 3, 3, 3)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.