itertools.permutations генерирует, когда его элементы рассматриваются как уникальные, основанные на их позиции, а не на их значении. Поэтому в основном я хочу избежать дубликатов:
>>> list(itertools.permutations([1, 1, 1]))
[(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)]
Фильтрация впоследствии невозможна, потому что количество перестановок слишком велико в моем случае.
Кто-нибудь знает подходящий алгоритм для этого?
Большое спасибо!
EDIT:
В основном я хочу:
x = itertools.product((0, 1, 'x'), repeat=X)
x = sorted(x, key=functools.partial(count_elements, elem='x'))
что невозможно, потому что sorted
создает список, а результат itertools.product слишком велик.
Извините, я должен был описать фактическую проблему.