从1到m中选取n个数进行全排列,应该怎么办? 比如输入m=3,n=2 输出 1 2 1 3 2 1

从1到m中选取n个数进行全排列,应该怎么办? 比如输入m=3,n=2 输出 1 2 1 3 2 1 2 3 3 1 3 2

可以用递归吧,这里借用一个代码

public static void Permutation(char chs[],int start)
    {
        if(start==end)
        {
            list.add(new String(chs));
        }
        for(int i=start;i<=chs.length-1;i++)
        {
            if(i==start||chs[i]!=chs[start])
            {
            //在排列的时候进行判断如果后面的元素与start相同时就不进行排序。
            //这样就可以避免对重复元素进行排序
                Swap(chs,i,start);
                Permutation(chs,start+1);
                Swap(chs,i,start);
            }
        }
    }