簡體   English   中英

按字典順序排列的k-排列

[英]k-permutations in lexicographical order

我正在嘗試以字典(按字母順序)順序生成k-排列(變體)。 例如,這段代碼

import itertools

a = list('ABCD')
k = 2

for c in itertools.combinations(a, k):
    for p in itertools.permutations(c):
        print "".join(p),

版畫

AB BA AC CA AD DA BC CB BD DB CD DC

而我正在尋找

AB AC AD BA BC BD CA CB CD DA DB DC

答案需要是可迭代的,因此sort不是一種選擇。

你可以只使用沒有combinations permutations

import itertools

a = 'ABCD'
k = 2

for p in itertools.permutations(a, k):
    print "".join(p),

也可以看看:

>>> ["".join(x) for x in itertools.permutations(a, k)]
['AB', 'AC', 'AD', 'BA', 'BC', 'BD', 'CA', 'CB', 'CD', 'DA', 'DB', 'DC']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM