def circle(l, n = 1): return l[n:] + l[:n] def perms(n): d = 3 l = 2 combs = [[1,2],[2,1]] if n == 2: return combs else: for d in range(3,n+1): for i in range(l): combs[i].append(d) for i in range(l*(d-1)): combs.append(circle(combs[i])) l *= d return combs #import time #for i in perms(3): # time.sleep(1) # print(i)