我有這樣的元組列表:[(1, 2, 3), (2, 4)]
(列表的長度和元組可能會有所不同),我想要得到所有包含至少的組合元素列表中的每個元組,而且包含更多的組合。列表中不同元組的元素的組合
所以結果應該是在這個例子中:
[[1, 2, 3, 2, 4], [1, 2, 2, 4], [2, 3, 2, 4], [1, 2, 4], [2, 2, 4], [3, 2, 4], [1, 2, 3, 2], [1, 2, 3, 4], [1, 2, 2], [1, 2, 4], [2, 3, 2], [2, 3, 4], [1, 2], [1, 4], [2, 2], [2, 4], [3, 2], [3, 4]]
最小的結果應該包含等於原始列表元組的一些元素數,最大的一個應該包含存在於元組的所有元素。
元素的順序並不重要,重複應該最終被消除(所以[1, 2, 3, 2, 4] = [1, 2, 3, 4]
,應該只在結果中只有一次,類似[3, 2] = [2, 3]
等),但我想過創建整體後排序和/或消除重複名單。
這樣做的最佳方法是什麼?坦率地說,我甚至不有線索如何正確地開始......
在'itertools'將是你最好的選擇一些方法。 – sshashank124
我在看他們,但老實說,沒有發現任何真正有用的東西(至少直接解決了我的問題;-))。 我在考慮將所有的元組元素合併成一個長列表,然後從它們中取出所有組合,最終消除那些不包含每個元組中至少一個元素的元素。 但我不確定這是最明智的方式。 – silmeth