k-перестановки в лексикографическом порядке

Я пытаюсь сгенерировать 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 не подходит.

5
задан georg 1 December 2011 в 13:12
поделиться