[英]k-permutations in lexicographical order
I'm trying to generate k-permutations (variations) in lexicographical (alphabetical) order. 我正在尝试以字典(按字母顺序)顺序生成k-排列(变体)。 For example, this code
例如,这段代码
import itertools
a = list('ABCD')
k = 2
for c in itertools.combinations(a, k):
for p in itertools.permutations(c):
print "".join(p),
prints 版画
AB BA AC CA AD DA BC CB BD DB CD DC
and I'm looking for 而我正在寻找
AB AC AD BA BC BD CA CB CD DA DB DC
The answer needs to be iterable, so sort
is not an option. 答案需要是可迭代的,因此
sort
不是一种选择。
You can just use permutations
without combinations
: 你可以只使用没有
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.