def list(str): if len(str) == 0: return [""] else: return "".join([pull(x, str) for x in range(len(str))]) def pull(x, str): return [str[x] + rest for rest in list(str[:x] + str[x+1:])]