99sun66
@99sun66
Все по немногу!

Как переставить символы в строке и вернуть все варианты?

Есть строка "робот" и необходимо перебрать все варианты слова начиная с 0 индекса и до последнего и вернуть все варианты:
["робот",
"оботр",
"ботро",
"отроб",
"тробо"]
Я делаю так m = (string + string[:1]) и получаю первый вариант "оботр", а как это зациклить и получить все варианты не понимаю.
  • Вопрос задан
  • 287 просмотров
Решения вопроса 1
karabanov
@karabanov
Системный администратор
Надо добавить цикл:
string = "робот"

for i in string:
  print(string)
  string = string[1:] + string[:1]


Или так:
string = "робот"

[string[i:] + string[:i] for i in range(len(string))]
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Viji
@Viji
DevOps Engineer
типа того - найти пермутации

from itertools import permutations


my_list=list("robot")
all_permutations = [''.join(perm) for perm in permutations(my_list)]
print(all_permutations)
Ответ написан
@y7o4ka
# Красиво. 
lst = [word[i:] + word[:i] for i in range(len(word))]
# Более понятно
lst = []
for i in range(1, len(word) + 1):
    lst.append(word[i:] + word[:i]) # "обот" + "р", "бот" + "ро"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы