public class Tests20200317 { private static String RANGE = "0123456"; public static void main(String[] args) { Test1(); } private static void Test1() { int length = RANGE.length(); Set<String> set = new HashSet<>(); for (int i = 0; i < 9999; i++) { String p = ""; int lave = i; int val = i % length; p = RANGE.charAt(val) + p; lave /= length; while (lave != 0) { val = lave % length; p = RANGE.charAt(val) + p; lave /= length; } set.add(p); System.out.println(p); } System.out.println(set.size()); } }
打印
0 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 23 24 25 26 30 31 32 33 34 35 36 40 41 42 43 44 45 46 50 51
缺点
缺少 00;01 等组合
调整取值范围
private static String RANGE = "00123456";
可以改善这一问题,但是出现了重复数据
64 65 66 000 000 001 002 003