Heiko Wundram <[EMAIL PROTECTED]> writes: > def perm(n): > rv = [] > for i in xrange(2L**n): > cur = [] > for j in range(n): > cur.append(1-2*(bool(i & (1<<j)))) > # cur is in reversed order LSB first, but as you seemingly don't > # care about order of the returned tuples, this is irrelevant. > rv.append(tuple(cur)) > return rv
def perm(n): return [tuple([(1,-1)[(t>>i)%2] for i in xrange(n)]) for t in xrange(2L**n)] >>> perm(4) [(1, 1, 1, 1), (-1, 1, 1, 1), (1, -1, 1, 1), (-1, -1, 1, 1), (1, 1, -1, 1), (-1, 1, -1, 1), (1, -1, -1, 1), (-1, -1, -1, 1), (1, 1, 1, -1), (-1, 1, 1, -1), (1, -1, 1, -1), (-1, -1, 1, -1), (1, 1, -1, -1), (-1, 1, -1, -1), (1, -1, -1, -1), (-1, -1, -1, -1)] >>> -- http://mail.python.org/mailman/listinfo/python-list