→ 16,8 с
ools.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)]
Последующая фильтрация невозможна, потому что в моем случае количество перестановок слишком велико.
Кто-нибудь знает подходящий алгоритм для этого?
Большое спасибо!
РЕДАКТИРОВАТЬ:
Что я в основном хочу, это следующее:
x = itertools.product((0, 1, 'x'), repeat=X)
x = sorted(x, key=functools.partial(count_elements, elem='x'))
что невозможно, потому чтоsorted
создает список, и вывод itertools.product слишком велик.
Извините, я должен был описать актуальную проблему.