fork download
  1. def permutations2(items):
  2. if len(items) == 1:
  3. yield tuple(items)
  4. return
  5. for index, fixed in enumerate(items):
  6. without_fixed = items[:index] + items[index + 1:]
  7. for x in permutations2(without_fixed):
  8. if fixed == x[0]:
  9. continue
  10. yield (fixed, *x)
  11.  
  12.  
  13. for p in permutations2(list('abca')):
  14. print(''.join(p))
  15.  
Success #stdin #stdout 0.02s 9060KB
stdin
Standard input is empty
stdout
abca
abac
acba
acab
baca
baca
caba
caba
abac
abca
acab
acba