我想查找有效具有綁定值的向量的排列。python itertools與綁定值排列
例如,如果我希望獲得作爲輸出等等[0,0,1,2], [0,0,2,1], [0,1,2,0]
所有組合,但我不希望獲得[0,0,1,2]
兩次這是什麼標準itertools.permutations(perm_vector)
會給。
我嘗試以下,但是當perm_vector grows
的len它的工作原理很慢:
的問題是更普遍的「加速」的性質,實際上。主要時間用於創建長向量的排列 - 即使沒有重複性,創建12個唯一值向量的排列也需要「無窮大」。是否有可能迭代調用itertools而不訪問整個排列數據,但是對其進行處理?
的[爲什麼Python的和itertools.permutations包含重複可能的複製? (當原始列表有重複時)](http://stackoverflow.com/questions/6534430/why-does-pythons-itertools-permutations-contain-duplicates-when-the-original) –
這裏是一個外部[鏈接]( http://blog.bjrn.se/2008/04/lexicographic-permutations-using.html)來自上述評論引用的線索中的評論,這可能是有幫助的。 – Praveen
在itertools模塊中有這樣的配方,請檢查unique_everseen配方:https://docs.python.org/3/library/itertools.html#itertools-recipes – Copperfield