def f(l):
if len(l) == 1:
return l
res = []
for i in range(len(l)):
for j in f(l[:i] + l[i + 1:]):
res.append(l[i] + j)
return res
def f(l):
if len(l) == 1:
return l
res = []
for i in range(len(l)):
for j in f(l[:i] + l[i + 1:]):
res.append(l[i] + j)
return res