这是一个不错的利用递归的例子,转载一下
public
static
void
main(String[] args)
{
System.out.println(Arrays.toString(permutation("1234")));
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private static String[] permutation(String orginal) {
ArrayList<String> list = new ArrayList<String>();
if(orginal.length() == 1){
return new String[];
} else{
for (int i = 0; i < orginal.length(); i++) {
String s = orginal.charAt(i) + "";
String result = "";
String resultA = result + s;
String leftS = orginal.substring(0, i) + orginal.substring(i + 1, orginal.length());
for (String element : permutation(leftS)) {
result = resultA + element;
list.add(result);
}
}
return (String[]) list.toArray(new String[list.size()]);
}
}
System.out.println(Arrays.toString(permutation("1234")));
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private static String[] permutation(String orginal) {
ArrayList<String> list = new ArrayList<String>();
if(orginal.length() == 1){
return new String[];
} else{
for (int i = 0; i < orginal.length(); i++) {
String s = orginal.charAt(i) + "";
String result = "";
String resultA = result + s;
String leftS = orginal.substring(0, i) + orginal.substring(i + 1, orginal.length());
for (String element : permutation(leftS)) {
result = resultA + element;
list.add(result);
}
}
return (String[]) list.toArray(new String[list.size()]);
}
}