Python Math: вывести все перестановки данной строки
Python Math: Упражнение-16 с решением
Напишите программу на Python для печати всех перестановок данной строки (включая дубликаты).
В математике понятие перестановки относится к действию упорядочения всех членов набора в некоторую последовательность или порядок, или, если набор уже упорядочен, перестановке (переупорядочению) его элементов, процессу, называемому перестановкой. Они отличаются от комбинаций, которые являются выбором некоторых членов набора, где порядок не учитывается.
На следующем изображении каждый из шести рядов представляет собой различную перестановку из трех отдельных шариков.
Пример решения : -
Код Python:
def permute_string(str):
if len(str) == 0:
return ['']
prev_list = permute_string(str[1:len(str)])
next_list = []
for i in range(0,len(prev_list)):
for j in range(0,len(str)):
new_str = prev_list[i][0:j]+str[0]+prev_list[i][j:len(str)-1]
if new_str not in next_list:
next_list.append(new_str)
return next_list
print(permute_string('ABCD'));
Пример вывода:
['ABCD', 'BACD', 'BCAD', 'BCDA', 'ACBD', 'CABD', 'CBAD', 'CBDA', 'ACDB', 'CADB', 'CDAB', 'CDBA', ' ABDC ',' BADC ',' BDAC ',' BDCA ',' ADBC ',' DABC ',' DBAC ',' DBCA ',' ADCB ',' DACB ',' DCAB ',' DCBA ']
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Previous: написать программу на Python, которая возвращает сумму всех делителей числа.
Далее: Напишите программу на Python для печати первых n счастливых чисел.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования