* Перевернем правую часть
'''function''' nextPermutation(a:arrayint[1..n] of integera):arrayint[1..n] of integer <font color=green>// <tex>n</tex> {{---}} длина перестановки</font>
'''for''' i = n - 1 '''downto''' 1
'''if''' a[i] < a[i + 1] min = i + 1 '''for''' j = i + 1 '''to''' n '''if''' (a[j] < a[min]) and (a[j] > a[i]) min = j swap(a[i], a[j]) std::reverse(a[i + 1]..a[n]) '''break''' return(a)
=== Пример работы ===