I found I always can only come up with brute force solution, for this, I will generate numbers only consist of 0, 1, 2, then try it until found a solution, e.g. 1,2,10,11,12,20,21,22,100,101,102,110,111,112,200,201,202, should be easy to generate it in a loop and try it until one % num==0.
Assuming the numbers is in a list, e.g. ArrayList, below method generate the next number in the list: void next(ArrayList current) { int carryOver = 0; current.set(current.size()-1, current.get(current.size()-1) + 1); for (int i = current.size() - 1; i >= 0; i--) { int val = current.get(i); int newVal = (val + carryOver) % 3; carryOver = (val + carryOver) / 3; current.set(i, newVal); if (carryOver == 0) break; } if (carryOver > 0) current.add(0, carryOver); } can easily change it if you want to be able to use more digits.