Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Created February 5, 2016 07:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1afc48c1910561a170eb to your computer and use it in GitHub Desktop.
Save anonymous/1afc48c1910561a170eb to your computer and use it in GitHub Desktop.
rows.py
from copy import deepcopy as copy
from itertools import permutations
TARGET = 11111111 * (1+2+3+4+5+6+7+8)
def rowbuilder(aa,bb,cc,dd,ee,ff,gg,hh):
for a in aa:
for b in bb:
for c in cc:
for d in dd:
for e in ee:
for f in ff:
for g in gg:
for h in hh:
current = [a,b,c,d,e,f,g,h]
if sum(current)==36:
yield current
def rows():
for a in rowbuilder(range(1,9),range(1,9),range(1,9),range(1,9),range(1,9),range(1,9),range(1,9),range(1,9)):
for b in rowbuilder(set(range(1,9)) - set([a[0]]),
set(range(1,9)) - set([a[1]]),
set(range(1,9)) - set([a[2]]),
set(range(1,9)) - set([a[3]]),
set(range(1,9)) - set([a[4]]),
set(range(1,9)) - set([a[5]]),
set(range(1,9)) - set([a[6]]),
set(range(1,9)) - set([a[7]])):
for c in rowbuilder(set(range(1,9)) - set([a[0],b[0]]),
set(range(1,9)) - set([a[1],b[1]]),
set(range(1,9)) - set([a[2],b[2]]),
set(range(1,9)) - set([a[3],b[3]]),
set(range(1,9)) - set([a[4],b[4]]),
set(range(1,9)) - set([a[5],b[5]]),
set(range(1,9)) - set([a[6],b[6]]),
set(range(1,9)) - set([a[7],b[7]])):
for d in rowbuilder(set(range(1,9)) - set([a[0],b[0],c[0]]),
set(range(1,9)) - set([a[1],b[1],c[1]]),
set(range(1,9)) - set([a[2],b[2],c[2]]),
set(range(1,9)) - set([a[3],b[3],c[3]]),
set(range(1,9)) - set([a[4],b[4],c[4]]),
set(range(1,9)) - set([a[5],b[5],c[5]]),
set(range(1,9)) - set([a[6],b[6],c[6]]),
set(range(1,9)) - set([a[7],b[7],c[7]])):
for e in rowbuilder(set(range(1,9)) - set([a[0],b[0],c[0],d[0]]),
set(range(1,9)) - set([a[1],b[1],c[1],d[1]]),
set(range(1,9)) - set([a[2],b[2],c[2],d[2]]),
set(range(1,9)) - set([a[3],b[3],c[3],d[3]]),
set(range(1,9)) - set([a[4],b[4],c[4],d[4]]),
set(range(1,9)) - set([a[5],b[5],c[5],d[5]]),
set(range(1,9)) - set([a[6],b[6],c[6],d[6]]),
set(range(1,9)) - set([a[7],b[7],c[7],d[7]])):
for f in rowbuilder(set(range(1,9)) - set([a[0],b[0],c[0],d[0],e[0]]),
set(range(1,9)) - set([a[1],b[1],c[1],d[1],e[1]]),
set(range(1,9)) - set([a[2],b[2],c[2],d[2],e[2]]),
set(range(1,9)) - set([a[3],b[3],c[3],d[3],e[3]]),
set(range(1,9)) - set([a[4],b[4],c[4],d[4],e[4]]),
set(range(1,9)) - set([a[5],b[5],c[5],d[5],e[5]]),
set(range(1,9)) - set([a[6],b[6],c[6],d[6],e[6]]),
set(range(1,9)) - set([a[7],b[7],c[7],d[7],e[7]])):
for g in rowbuilder(set(range(1,9)) - set([a[0],b[0],c[0],d[0],e[0],f[0]]),
set(range(1,9)) - set([a[1],b[1],c[1],d[1],e[1],f[1]]),
set(range(1,9)) - set([a[2],b[2],c[2],d[2],e[2],f[2]]),
set(range(1,9)) - set([a[3],b[3],c[3],d[3],e[3],f[3]]),
set(range(1,9)) - set([a[4],b[4],c[4],d[4],e[4],f[4]]),
set(range(1,9)) - set([a[5],b[5],c[5],d[5],e[5],f[5]]),
set(range(1,9)) - set([a[6],b[6],c[6],d[6],e[6],f[6]]),
set(range(1,9)) - set([a[7],b[7],c[7],d[7],e[7],f[7]])):
for h in rowbuilder(set(range(1,9)) - set([a[0],b[0],c[0],d[0],e[0],f[0],g[0]]),
set(range(1,9)) - set([a[1],b[1],c[1],d[1],e[1],f[1],g[1]]),
set(range(1,9)) - set([a[2],b[2],c[2],d[2],e[2],f[2],g[2]]),
set(range(1,9)) - set([a[3],b[3],c[3],d[3],e[3],f[3],g[3]]),
set(range(1,9)) - set([a[4],b[4],c[4],d[4],e[4],f[4],g[4]]),
set(range(1,9)) - set([a[5],b[5],c[5],d[5],e[5],f[5],g[5]]),
set(range(1,9)) - set([a[6],b[6],c[6],d[6],e[6],f[6],g[6]]),
set(range(1,9)) - set([a[7],b[7],c[7],d[7],e[7],f[7],g[7]])):
answer = zip(*[a,b,c,d,e,f,g,h])
result = []
for i in answer:
result.append(int("".join([str(j) for j in i])))
if len(set(result))==8:
yield result
# yield int("".join([str(i) for i in a])),int("".join([str(i) for i in b])),int("".join([str(i) for i in c])),int("".join([str(i) for i in d])),int("".join([str(i) for i in e])),int("".join([str(i) for i in f])),int("".join([str(i) for i in g])),int("".join([str(i) for i in h]))
if __name__ == "__main__":
for i in rows():
print i
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment