All pastes #1602552 Raw Edit

Problem 24

public python v1 · immutable
#1602552 ·published 2009-10-07 21:47 UTC
rendered paste body
#!/usr/bin/env python2.5def permutations(iterable, r=None):    # permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC    # permutations(range(3)) --> 012 021 102 120 201 210    pool = tuple(iterable)    n = len(pool)    r = n if r is None else r    if r > n:        return    indices = range(n)    cycles = range(n, n-r, -1)    yield tuple(pool[i] for i in indices[:r])    while n:        for i in reversed(range(r)):            cycles[i] -= 1            if cycles[i] == 0:                indices[i:] = indices[i+1:] + indices[i:i+1]                cycles[i] = n - i            else:                j = cycles[i]                indices[i], indices[-j] = indices[-j], indices[i]                yield tuple(pool[i] for i in indices[:r])                break        else:            returntry:    from itertools import permutationsexcept ImportError:    passi = 1for j in permutations(range(10)):    if i == 1000000:        print "".join([str(x) for x in j])        break    i += 1