seen = 0 unseen = 1 K = 10 other(p) = my (v=unseen); while (bittest(seen, v) || hammingweight(p+v)