#!/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)