import java.util.*;
public class Main{
public static void main(String[] args) {
String str="abc";
String newstr=""; //用于存储拼接后的字符串
int[] book=new int[str.length()];//用于标记已经使用过的字符位置
int depth=0; //作为出口,当拼接深度=字符串长度时输出改时间的字符串
DFS( str,book, newstr,depth);
}
public static void DFS(String str,int [] book,String newstr,int depth){
if(depth==str.length()){
System.out.println(newstr);
}
for (int i=0;i<str.length();i++){
if(book[i]==0){ //如果该位置没有使用过,则拼接到当前字符串中
book[i]=1; //将当前位置标记为使用过的
DFS( str,book,newstr+str.charAt( i ),depth+1);
book[i]=0; //需要释放这个位置
}
}
}
}