def permutations(s):
if len(s) == 1 or len(s) == 0:
return s
_permutations = []
for permutation in permutations(s[1:]):
for i in range(len(permutation) + 1):
_permutations.append(permutation[:i] + s[0] + permutation[i:])
return _permutations
def main(s):
print(permutations(s))
if __name__ == '__main__':
main('abc')
ZGVmIHBlcm11dGF0aW9ucyhzKToKICAgIGlmIGxlbihzKSA9PSAxIG9yIGxlbihzKSA9PSAwOgogICAgICAgIHJldHVybiBzCiAgICBfcGVybXV0YXRpb25zID0gW10KICAgIGZvciBwZXJtdXRhdGlvbiBpbiBwZXJtdXRhdGlvbnMoc1sxOl0pOgogICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihwZXJtdXRhdGlvbikgKyAxKToKICAgICAgICAgICAgX3Blcm11dGF0aW9ucy5hcHBlbmQocGVybXV0YXRpb25bOmldICsgc1swXSArIHBlcm11dGF0aW9uW2k6XSkKICAgIHJldHVybiBfcGVybXV0YXRpb25zCgoKZGVmIG1haW4ocyk6CiAgICBwcmludChwZXJtdXRhdGlvbnMocykpCgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIG1haW4oJ2FiYycp