对此算法还不算很熟,现有些凌乱的想法,先记录于此,以后再修正
tips:
0)算法描述:
i)全排列 首字母以后的字母
ii)给每一个字母以打头的机会
iii)重复i)、ii)
1)abcde为例,a为第五层、e为第一层,每一层都统管后面的。
2)每一层所做的事是一样的,所以我们要用递归
3)要给每一个字母以开始的机会,所以要循环
4)既然每一层都一样,我们观察第二层就可以得出全局规律
5)避免组合的字母重复出现:所以每次执ii)后,字母的顺序都会复原。具体请看上图do(2) do(3)执行后与执行前的结果对比