用了递归的方法
package 全排序;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
//保存所有可能的排序情况
static List<String> list=new ArrayList<>();
//判断第i个位置的字符是否被使用,默认是false
static boolean f[];
//保存输入的字符串
static char a[];
//在这里拼凑所有可能的字符串,再存入list
static char b[];
//输入字符串的长度
static int n;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
a=sc.nextLine().toCharArray();
n=a.length;
b=new char[n];
f=new boolean[n];
//开始用方法递归
pdf(0);
for(String s:list) {
System.out.println(s);
}
}
public static void pdf(int k) {
if(k==n) {
list.add(String.valueOf(b));
return;
}
for(int i=0;i<n;i++) {
if(!f[i]) {
f[i]=true;//标记占用
b[k]=a[i];
pdf(k+1);
f[i]=false;//释放
}
}
}
}