mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-30 12:46:11 -04:00
32 lines
852 B
Python
32 lines
852 B
Python
#!/bin/python
|
|
|
|
"""
|
|
Write a recursive function for generating all permutations of an input string. Return them as a set.
|
|
"""
|
|
|
|
def get_permutations(string):
|
|
|
|
if len(string) < 2:
|
|
return set([string])
|
|
|
|
all_chars_except_last = string[:-1]
|
|
last_char = string[-1]
|
|
|
|
permutations_of_all_chars_except_last = get_permutations(all_chars_except_last)
|
|
|
|
permutations = set()
|
|
for permutation_of_all_chars_except_last in permutations_of_all_chars_except_last:
|
|
for position in range(len(all_chars_except_last) + 1):
|
|
permutation = (
|
|
permutation_of_all_chars_except_last[:position]
|
|
+ last_char
|
|
+ permutation_of_all_chars_except_last[position:]
|
|
)
|
|
permutations.add(permutation)
|
|
|
|
|
|
return permutations
|
|
|
|
|
|
str = "abcd"
|
|
print get_permutations(str) |