该算法是:
- 删除第一个字母
- 查找剩余字母的所有排列(递归步骤)
- 重新插入在每个可能的位置删除的字母。
递归的基本情况是单个字母。置换单个字母只有一种方法。
工作的例子
想象开始的单词是
bar。
- 首先删除
b
。 - 找到的排列
ar
。这给ar
和ra
。 - 对于每个单词,将放在
b
每个位置:ar
- >bar
,abr
,arb
ra
- >bra
,rba
,rab

该算法是:
递归的基本情况是单个字母。置换单个字母只有一种方法。
工作的例子
想象开始的单词是
bar。
b。
ar。这给
ar和
ra。
b每个位置:
ar- >
bar,
abr,
arb
ra- >
bra,
rba,
rab