devxlogo

PermuteString – Generating all possible combinations out of a string

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/

See also  5 Tips for Working With an Onsite Interpreter
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist