package com.stringtest;
public class StringPermute {
String str;
public StringPermute(String str){
this.str = str;
}
public void permute(){
int length = str.length();
boolean[] used = new boolean[length];
StringBuffer out = new StringBuffer();
char[] in = str.toCharArray();
doPermute(in, out,used,length,0);
}
private void doPermute(char[] in, StringBuffer out, boolean[] used,
int length,int level) {
if(level==length){
System.out.println(out.toString());
return;
}
for(int index=0;index<length;index++){
if(used[index]){
continue;
}
out.append(in[index]);
used[index]=true;
doPermute(in,out,used,length,level+1);
used[index]=false;
out.setLength(out.length()-1);
}
}
}