public class Main {
public static void main(String[] args) {
Main main = new Main();
Set<String> result = main.action("abc");
for(String str : result){
System.out.println(str);
}
}
public Set<String> action(String p){
if(p.length() == 1){
Set<String> set = new HashSet<String>();
set.add(p);
return set;
}
Set<String> result = new HashSet<String>();
for(int i=0;i<p.length();i++){
String s = p.substring(i,i+1);
String os = p.substring(0,i)+p.substring(i+1);
Set<String> set = action(os);
for(String str : set){
result.add(s+str);
}
}
return result;
}
}