请问一个关于全排列的算法

请教一个关于全排列的算法
输出a,b,b,c,d五个字符的全排列,不允许有重复
算法 全排列

------解决方案--------------------
引用:
Quote: 引用:

stl next_permutation不会列举出重复的全排列
看一下next_permutation实现原理。
函数实现原理如下:
在当前序列中,从尾端往前寻找两个相邻元素,前一个记为*i,后一个记为*ii,并且满足*i < *ii。然后再从尾端寻找另一个元素*j,如果满足*i < *j,即将第i个元素与第j个元素对调,并将第ii个元素之后(包括ii)的所有元素颠倒排序,即求出下一个序列了。
以上是我在网上找到的原理,我怎么觉得有问题?如果ii个元素位置是按对调之后的,那么abc的下一个序列还是abc,如果ii的位置是按对调之前的,则不能列举出所有的排列


abc:  *i 为,b *ii 为c  , *j 为c
则ij对调, 变为 acb。ii是现在b的位置,颠倒ii和ii之后的序列,只有ii自己。
也就是不变,还是acb