输出指定数字随意组合 算法一 (参考数字进制转换)

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
原文地址:https://www.cnblogs.com/song-wentao/p/12509943.html