Filling a space...
holger krekel
pyth at devel.trillke.net
Tue Jun 11 10:34:21 EDT 2002
Thor wrote:
> Having this tupe: (2,3,4), which one would be the msot efficient way to get
> this (parentheses ommited):
>
> 0,0,0 0,0,1 0,0,2 0,0,3
> 0,1,0 0,1,1 0,1,2 0,1,3
> 0,2,0 0,2,1 0,2,2 0,2,3
> 1,0,0 1,0,1 1,0,2 1,0,3....
>
> I mean, to get all the possible integer points in a defined space.
i hope you are going to cope well with all the answers you will certainly get.
i can't resist either to present a >=python2.2 solution :-)
def allpoints_generator(spectuple):
aslist = list(spectuple)
if aslist:
for i in xrange(aslist.pop(0)):
if aslist:
for sub in allpoints_generator(aslist):
yield (i,)+sub
else:
yield (i,)
for i in allpoints_generator( (1,2,3) ):
print "result", i
result (0, 0, 0)
result (0, 0, 1)
result (0, 0, 2)
result (0, 1, 0)
result (0, 1, 1)
result (0, 1, 2)
have fun,
holger
More information about the Python-list
mailing list