s = 0 seen(v) = bittest(s, v) see(v) = s = bitor(s, 2^v) base = 10 p = 2 { n=0; for (w=1, oo, my (m=base^w); for (k=0, oo, my (pk=p^k, l=#digits(pk, base)); forstep (s=l-w, 0, -1, my (d=(pk\(base^s))%m); if (!seen(d), see(d); print (n++ " " d); if (n==10 000, break (3); ); ); ); if (n==m, break; ); ); ); } quit