Генерация уникальных перестановок в предсказуемом порядке с помощью Python и Sympy - PullRequest
0 голосов
/ 04 июня 2019

У меня есть список элементов в Python. В конечном коде длина списка будет переменной, а элементы моего списка будут намного длиннее, но я могу продемонстрировать свой вопрос с тремя фиктивными элементами.

По сути, для любого списка длины n будет n-1 идентичных элемента и 1 уникальный элемент.

Итак, на примере трех элементов у меня есть:

test = ['b', 'a', 'a']

Для небольших случаев, таких как 3, где я могу наглядно проверить порядок элементов, я использовал функцию из модуля Sympy, как показано ниже:

permutations = list(multiset_permutations(test))

Однако, как только дела становятся слишком большими, я не уверен, что порядок будет предсказуемым. И проверка официальных документов не очень хорошо проясняет проблему для меня.

Есть ли способ генерировать эти перестановки в предсказуемом порядке, чтобы я мог знать, например:

permutations[0] = ['b', 'a', 'a']
permutations[1] = ['a', 'b', 'a']
permutations[2] = ['a', 'a', 'b']

Спасибо за любую помощь, которая может быть оказана.

1 Ответ

0 голосов
/ 05 июня 2019

Элементы упорядочены до того, как перестановки сгенерированы multiset_permutations.Ваш результат не будет зависеть от порядка ввода элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...