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