我正在尝试按字典顺序(字母顺序)生成 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
不是一个选项。
最佳答案
您可以只使用排列
而不使用组合
:
import itertools
a = 'ABCD'
k = 2
for p in itertools.permutations(a, k):
print "".join(p),
另见:
关于python - k-字典序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8341963/