Чтобы найти все возможные перестановки символов в строке, вы можете использовать рекурсивный подход. Вот функция, которая находит все перестановки для данной строки и возвращает их список:
def get_permutations(string):
if len(string) == 0:
return ['']
all_permutations = []
for i in range(len(string)):
char = string
remaining_string = string[:i] + string[i + 1:]
for perm in get_permutations(remaining_string):
all_permutations.append(char + perm)
return all_permutations
string = "abc"
all_permutations = get_permutations(string)
unique_permutations = list(set(all_permutations))
print("Все перестановки:", all_permutations)
print("Уникальные перестановки:", unique_permutations)
print("Количество перестановок:", len(unique_permutations))
Пример вывода для строки "abc":
Все перестановки: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
Уникальные перестановки: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
Количество перестановок: 6
Обратите внимание, что количество перестановок для строки длины n равно n! (факториал числа n). Это означает, что для больших строк количество перестановок будет очень большим, и получение всех возможных перестановок может быть непрактичным.