题目描述:给定一个数列a1,a2,a3…an,输出他所有的全排列。 算法设计描述: 1、获取当前的一种排列,用start,end分别表示该排列的列头,列尾; 2、判断start是否和end相等,若相等,执行3,否则执行4; 3、将当前排列和已出现过的排列进行比较,判断当前排列是否已经出现过,若出现过,将其忽略,否则将其进行存储; 4、从j=start开始到end结束,对排列中的每一个字符和a[start]进行比较,若a[j]==a[start]&&j!=start,跳过,否则,交换当前排列中位于start和j处的字符,再将start=start+1,并跳转到1,再将位于j和start处的字符交