У меня есть список элементов в 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']
Спасибо за любую помощь, которая может быть оказана.