什麼是生成列表的所有組合的最佳方式,其中每個組合都包含列表中的每個項目以及可以組合其他項目的位置。生成列表的所有已排序組合,其中每個組合都包含所有項目
例如,對於一個列表['a','b','c']
,我喜歡生成:
['a','b','c']
['ab','c']
['a','bc']
['abc']
我覺得這是一個有點類似:Python: Generating all ordered combinations of a list。但是這隻關心切片。我想要從列表中獲取每個項目的所有組合。是否有itertools的內置函數可用於生成答案?
該列表也可能是數字,可能有重複的值。例如:[1,2,1]
應該產生:
[1,2,1]
[12,1]
[1,21]
[121]
我可以嘗試從鏈接中使用的代碼,但不是生成項目的組合,我將生成的列表中的指數組合的基礎。在我以0開頭的所有組合的情況下,查找下一個項目並查找以該項目開頭的所有組合等等。我不認爲這將是有效的。
這似乎很好地工作。試圖看看它是如何工作的。 – user1179317
我剛剛瞭解你的發電機功能,它非常酷。感謝你的回答。 – user1179317