seeds = {}; NestWhile[(seeds = {seeds, First@#}; test = NestList[nextNumber, First@#, 10]; DeleteCases[ Rest[#], _?(IntersectingQ[test, NestList[nextNumber, #, 10]] &)]) &, candidates, Length@# > 0 &]; seeds = Flatten@seeds