递归算法:
{a,b,c,d}全排列包括:a+{b,c,d}的全排列;b+{a,c,d}的全排列;c+{a,b,d}的全排列;d+{a,b,c}的全排列
public class FullPermutation { static void Permutation(int[] an,int start,int end) { if(start==end) { for(int i=0;i<=end;i++) { System.out.print(an[i]); } System.out.println(""); } else { for(int cur=start;cur<=end;cur++) { int temp = an[cur]; an[cur] = an[start]; an[start] = temp; Permutation(an,start+1,end); temp = an[cur]; an[cur] = an[start]; an[start] = temp; } } } public static void main(String[] args) { // TODO Auto-generated method stub int n = 3; int[] an = new int[3]; for(int i = 0;i<n;i++) { an[i] = i+1; } Permutation(an,0,n-1); } }