s = 0 unseen = 0 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) d = vector(2^13) { for (n=0, #d-1, print (n " " v=unseen); d[n+1] = v; forstep (k=n, 1, -1, d[k] = bitxor(d[k],d[k+1]); ); for (k=1, n+1, see(d[k]); ); ); } quit