Как сделать глубокую перестановку некоторых букв в Python? - PullRequest
0 голосов
/ 14 октября 2018

Итак, я пытался переставить некоторые буквы в python, используя библиотеку перестановок, но я увидел, что она возвращает только заданные буквы, так что никакие буквы не являются дубликатами, если у меня есть буквы a, b и c, перестановка будетследующим образом.

abc
acb
bac
bca
cab
cba

Теперь я пытался найти способ более углубленного понимания, я думаю, поэтому у меня это выглядит так.

aaa 
aab 
aac 
aba 
abc
abc
aca

Есть ли правильный путь?сделать это в Python?Возможно, я ошибаюсь, но я так и видел.

Редактировать после решения:

Люди, которые интересовались, что я пытался, я использовал часть перестановкибиблиотеки itertools:

>>>print([x for x in itertools.permutations('1234')])
>>>[('1', '2', '3', '4'), ('1', '2', '4', '3'), ('1', '3', '2', '4') ... ]

1 Ответ

0 голосов
/ 14 октября 2018

Возможно, вы хотите что-то вроде itertools.product

from itertools import product

print(list(product('abc', repeat = 3)))
# [('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'a', 'c'), ('a', 'b', 'a'), ('a', 'b', 'b'), ('a', 'b', 'c'), ('a', 'c', 'a'), ('a', 'c', 'b'), ('a', 'c', 'c'), ('b', 'a', 'a'), ('b', 'a', 'b'), ('b', 'a', 'c'), ('b', 'b', 'a'), ('b', 'b', 'b'), ('b', 'b', 'c'), ('b', 'c', 'a'), ('b', 'c', 'b'), ('b', 'c', 'c'), ('c', 'a', 'a'), ('c', 'a', 'b'), ('c', 'a', 'c'), ('c', 'b', 'a'), ('c', 'b', 'b'), ('c', 'b', 'c'), ('c', 'c', 'a'), ('c', 'c', 'b'), ('c', 'c', 'c')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...