On Nov 2, 3:34 pm, [EMAIL PROTECTED] wrote: > Hello, can someone please help. > > I found the following code athttp://code.activestate.com/recipes/252178/ > > def all_perms(str): > if len(str) <=1: > yield str > else: > for perm in all_perms(str[1:]): > for i in range(len(perm)+1): > #nb str[0:1] works in both string and list contexts > yield perm[:i] + str[0:1] + perm[i:] > > which allows me to do things like > > for x in all_permx("ABCD"): > print x > > I believe it is making use of the plain changes / Johnson Trotter > algorithm. > Can someone please confirm? > > Anyway what I want to do is experiment with code similar to this (i.e. > same algorithm and keep the recursion) in other languages, > particularly vbscript and wondered what it would look like if it was > rewritten to NOT use the yield statement - or at least if it was > amended so that it can be easily translated to other languages that > dont have python's yield statement. I think the statement "for perm in > all_perms(str[1:]):" will be hardest to replicate in a recursive > vbscript program for example. > > Thanks for any constructive help given. > > Hal
I think multi-threading is the "truest" to the original. You might develop a framework to set events when particular generators are to take a turn, place their "yields", per se, in a particular place, set the return event, etc., and reuse it. Of course, starting threads in VBS might be another matter. -- http://mail.python.org/mailman/listinfo/python-list