java穷举0-9之间所有不重复的值

/*五、分析以下需求,并用代码实现:        (1)打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;        (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。        注:要求使用StringBuilder来完成*/public class HomeWork05 {    public static void main(String[] args) throws IOException {//        输入值并简单处理        Scanner sc = new Scanner(System.in);        System.out.println("请输入起始值(0~9):");        int start=sc.nextInt();        System.out.println("请输入结束值(0~9):");        int end=sc.nextInt();        int bound=end-start+1;        StringBuilder stringBuilder = new StringBuilder();        HashSet<String> set = new HashSet<>();        int cout=0;        Random r = new Random();        long bCount=boundCount(bound);        if (bCount>10000){            System.out.println("结果数超过10000为"+bCount+"计算会很慢,请按任意键继续");            System.in.read();        }//        穷举各种可能,小于正确结果个数持续执行 直到达到正确个数        while (set.size()<bCount) {            int number = r.nextInt(bound) + start;            if (!stringBuilder.toString().contains(String.valueOf(number))&&stringBuilder.toString().length()<bound){                stringBuilder.append(number);            }else if (stringBuilder.toString().length()==bound){                set.add(stringBuilder.toString());                stringBuilder=new StringBuilder();            }        }        List ts = new ArrayList<>(set);        Collections.sort(ts); //排序        System.out.println("结果数:"+ts.size());        System.out.println(ts.toString().replace("[","")                .replace("]","")                .replace(","," "));    }    /**     * 计算笛卡尔积运算去重后个数     * @param bound     * @return     */    public static long boundCount(int bound){        int sum=1;        for (int i = 1; i <= bound; i++) {           sum*=i;        }        return sum;    }}