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