View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
keepITcool keepITcool is offline
external usenet poster
 
Posts: 2,253
Default permutation generator help.


it's a recursive procedure. (which calls itself)
NOTE the description you give of the initial arguments s/b reversed!

to run it you'd call it like:

Dim currentrow As Long

Sub Foo()
currentrow = 1
Call GetPermutation("", "ABCDEF")
End Sub

and it will run the 720 (=PERMUT(6,5) permutations of the
letters "A thru F"



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam

chandrans wrote in message
:


I have come across this permutation generator code. But doesn't
understand it
Can anybody explain how this works?
where x will be the string input and y will be initially ""
Sub GetPermutation(x As String, y As String)
' The source of this algorithm is unknown

Dim i As Integer, j As Integer
j = Len(y)
If j < 2 Then
Cells(CurrentRow, 1) = x & y
CurrentRow = CurrentRow + 1
Else
For i = 1 To j
Call GetPermutation(x + Mid(y, i, 1), Left(y, i - 1) +
Right(y, j - i))
Next
End If
End Sub