On Feb 27, 10:41 pm, Mark Dickinson <[EMAIL PROTECTED]> wrote:
> On Feb 27, 11:38 pm, Mark Dickinson <[EMAIL PROTECTED]> wrote:
>
> >             yield map(len, (''.join(s)).split('|'))
>
> That line should have been just:
>
>             yield map(len, s.split('|'))
>
> of course.
>
> Mark

It's easier:

def rec( boxesleft, stonesleft, seq ):
        if 1== boxesleft:
                print( seq+ ( stonesleft, ) )
                return
        for i in range( stonesleft+ 1 ):
                rec( boxesleft- 1, stonesleft- i, seq+ ( i, ) )
rec( 3, 4, () )
rec( 6, 1, () )
rec( 4, 2, () )

Just sort the list in text-ascending order, and it's pretty clear.

It uses tuple concat., which may be slower than Marks.

If you want an iterative, stay tuned.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to