# Pastebin B3jfb60h # Extended Gray codes # base N, length K def gray(N,K): g = [0 for _ in range(K+1)] u = [1 for _ in range(K+1)] for idx in range(9): # max N**K print(idx,''.join(reversed([str(i) for i in g[:-1]]))) i = 0 k = g[0] + u[0] while (k >= N or k < 0): u[i] = -u[i] i += 1 k = g[i] + u[i] g[i] = k gray(3,3)