кодесурса
«Python

Python Math: вывести все перестановки данной строки

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code