123 456 789 123 -> 312 456 456 789 789 0 1 2 3 --> 0 0 1 3 2 --> 1 0 2 1 3 --> 2 ... 1 0 2 3 --> 6 1 0 3 2 --> 7 ... 3 1 2 0 --> 21 3 2 0 1 --> 22 3 2 1 0 --> 23 n = a_1 * 1! + a_2 * 2! + a_3 * 3! + a_4 * 4! + ... for i = 1 to s-1 the i-th symbol becomes the (a_(s-i)+1)-th smallest unused symbol the last symbol is the left over one 4231 = 1 + 2*2115 : a_1 = 1 2115 = 0 + 3* 705 : a_2 = 0 705 = 1 + 4* 176 : a_3 = 1 176 = 1 + 5* 35 : a_4 = 1 35 = 5 + 6* 5 : a_5 = 5 5 = 5 + 7* 0 : a_6 = 5 coefficients symbols choice 0,5,5,1,1,0,1 1,2,3,4,5,6,7,8 1 5,5,1,1,0,1 2,3,4,5,6,7,8 7 5,1,1,0,1 2,3,4,5,6,8 8 1,1,0,1 2,3,4,5,6 3 1,0,1 2,4,5,6 4 0,1 2,5,6 2 1 5,6 6 - 5 5 symbols count perm index(head) 1,2,3,4,5,6 6 2,4,6,3,5,1 1 a_5 = 1 1,3,4,5,6 5 4,6,3,5,1 2 a_4 = 2 1,3,5,6 4 6,3,5,1 3 a_3 = 3 1,3,5 3 3,5,1 1 a_2 = 1 1,5 2 5,1 1 a_1 = 1