I thought I had it with this.. which is similiar to what you suggested Ben

<cffunction name="createWordList" returntype="array">
        <cfargument name="wordArray" required="yes" type="array" />
        <cfargument name="strbase" default="" required="yes" type="string" />
        <cfargument name="remainingchars" default="" required="yes" 
type="string" />
        
        <cfset var j = 1 />
        <cfset var currchar = "" />
        <cfset ccArr = arraynew(1) />
        <cfset sbArr = arraynew(1) />
        <cfset rcArr = arraynew(1) />

        <cfscript>
        if(len(remainingchars) eq 1) {
                wordArray[ArrayLen(wordArray)+1] = strbase & 
mid(remainingchars,1,1);
        } else {
                for (j = 1; j lt len(remainingchars); j=j+1) {
                        currchar = mid(remainingchars,j,1);
                        if(find(currchar,remainingchars,j) eq j) {
                                wordArray[ArrayLen(wordArray)+1] = 
createWordList(wordArray,
mid(remainingchars,1,j) &
mid(remainingchars,j+1,len(remainingchars)));

                                }
                }
        }
                
        </cfscript>
<cfreturn wordArray />
</cffunction>


But all I get is an empty Array.. :
array
1       
array [empty]
2       
array
1       
array [empty]
3       
array
1       
array [empty]
2       
array
1       
array [empty]



On Thu, Feb 14, 2008 at 8:30 AM, Ben Doom <[EMAIL PROTECTED]> wrote:
> In pseudocode:
>
>  function f(sofar, more)
>  {
>         array strings
>         foreach letter in more
>         {
>                 strings = f(foreach+letter, more-letter)
>         }
>         return strings
>  }
>
>  HTH.
>
>  --Ben Doom
>
>
>
>  Greg Morphis wrote:
>  > anyone else? I was hoping to do this in CF alone?
>  >
>  > Thanks
>  >
>  > On Wed, Feb 13, 2008 at 6:59 PM, Dawson, Michael <[EMAIL PROTECTED]> wrote:
>  >> Thinking outside the box...  You could use a database for this.  Create a 
> table that contains a single column.  That column contains a record for each 
> letter of the alphabet.  Then, do a cartesian join to join that table to 
> itself, three other times.  Concatenate the fields and you should have each 
> combination.
>  >>
>  >> That would get the first part without consideration of the second part.
>  >>
>  >> m!ke
>  >>
>  >>  _____
>  >>
>  >> From: Greg Morphis [mailto:[EMAIL PROTECTED]
>  >> Sent: Wed 2/13/2008 4:57 PM
>  >> To: CF-Talk
>  >> Subject: all possible letter combinations
>  >>
>  >>
>  >>
>  >>
>  >> Given a string, e.g. "ABCD"
>  >>
>  >> I need to come up with all combinations of letters
>  >> eg
>  >> ABCD
>  >> ABDC
>  >> ACBD
>  >> ACDB
>  >> .....
>  >>
>  >> And exlude strings like 'AAAA', 'AAAB' unless you pass a string with
>  >> duplicate characters
>  >> If I pass the string "AAAB" then it'd return:
>  >> AAAB
>  >> AABA
>  >> ABAA
>  >> BAAA
>  >>
>  >>
>  >>
>  >>
>  >>
>  >
>  >
>
>  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298998
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to