PermuteString – Generating all possible combinations out of a string

' Generates all combination possibilities out of a stringPublic Function PermuteString(ByVal Ztring As String, Optional Base As String = _    "") As String    Dim TmpStrArray() As String, I As Long        ' If there's only 1 element then    If InStr(1, Ztring, " ", vbTextCompare) = 0 Then        PermuteString = Base & " " & Ztring & vbCrLf        Exit Function    End If         ' If more than 1 element: split elements in one array of elements    TmpStrArray = Split(Ztring, " ", , vbTextCompare)         If Base = "" Then        ' Loop trough each element and do callbacks to permute again        For I = LBound(TmpStrArray) To UBound(TmpStrArray)            PermuteString = PermuteString & PermuteString(ReturnAllBut _                (TmpStrArray, I), TmpStrArray(I))        Next    Else        ' Loop trough each element and do callbacks to permute again        For I = LBound(TmpStrArray) To UBound(TmpStrArray)            PermuteString = PermuteString & " " & PermuteString(ReturnAllBut _                (TmpStrArray, I), Base & " " & TmpStrArray(I))        Next    End If End Function' Return all items in a array but 1Public Function ReturnAllBut(ByRef Arrai() As String, But As Long) As String    Dim I As Long    For I = LBound(Arrai) To UBound(Arrai)        If I <> But Then            ReturnAllBut = ReturnAllBut & Arrai(I) & " "        End If    Next    ReturnAllBut = RTrim(ReturnAllBut)End Function' Pay a visit to the author's web site at http://www15.brinkster.com/bubux/

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: