Generate permutations with only adjacent swaps allowed | JavaScript program to generate permutations with only one swap allowed . ; don 't swap the current position ; Swap with the next character and revert the changes . As explained above , swapping with previous is is not needed as it anyways happens for next character . ; Driver code
function findPermutations ( str , index , n ) { if ( index >= n index + 1 >= n ) { document . write ( str . join ( " " ) + " " ) ; return ; } findPermutations ( str , index + 1 , n ) ; swap ( str , index ) ; findPermutations ( str , index + 2 , n ) ; swap ( str , index ) ; } function swap ( arr , index ) { var temp = arr [ index ] ; arr [ index ] = arr [ index + 1 ] ; arr [ index + 1 ] = temp ; } var str = " " . split ( " " ) ; var n = str . length ; findPermutations ( str , 0 , n ) ;