Newer
Older
def bunny(start, finish, length, way=[]):
if not way:
way = [start]
if length == 0 and start == finish:
return way
elif length == 0 and start != finish:
return way + [None]
elif length != 0 and start == finish:
return way + [None]
else:
ways = [bunny(start + 1, finish, length - 1, way=way + [start + 1]),
bunny(start - 1, finish, length - 1, way=way + [start - 1]),
bunny(start + 3, finish, length - 1, way=way + [start + 3]),
bunny(start - 3, finish, length - 1, way=way + [start - 3])]
nways = []
for w1 in ways:
if not w1:
continue
if type(w1[0]) is list:
for w2 in w1:
if w2[-1] is not None:
nways.append(w2)
else:
if w1[-1] is not None:
nways.append(w1)
return nways