[英]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.