View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Dana DeLouis Dana DeLouis is offline
external usenet poster
 
Posts: 947
Default Pattern / Combinations

Very Nice!
I like it also. In other math programs, this is known as "BinarySubsets."
This implementation gives it in reverse order. With 5 items, it goes from
2^5-1 to 1 in Binary form. Other programs use this idea for implementation.
First number is 31, or 11111 in binary, (abcde)
Second number is 30, or 11110 (abcd)
29, 11101 (abce)
etc...
--
Dana DeLouis
Windows XP, Office 2003


"Tom Ogilvy" wrote in message
...
Very Nice!

--
Regards,
Tom Ogilvy


"Andrew Taylor" wrote:

A simple recursive approach seems to work quite well (though
it doesn't give them in alphabetical order):

Option Explicit
Sub main()
ShowCombinations "", "ABCDE"
End Sub

Sub ShowCombinations(strPrefix As String, strMain As String)
If strMain = "" Then
Debug.Print strPrefix
Exit Sub
End If
Dim strFirst As String, strRest As String
strFirst = Left(strMain, 1)
strRest = Mid(strMain, 2)
ShowCombinations strPrefix & strFirst, strRest
ShowCombinations strPrefix, strRest
End Sub



Paul W Smith wrote:
Does anyone know of any algorithms which produce all the possible
combinations of patterns within a string?

Example String = ABCDE

AB, AC, AD, AE, BC, BD, BE, CD, CE, DE
ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, CDE
ABCD, ABCE, ABDE, ACDE, BDCE
ABCDE