Skip to content
Snippets Groups Projects
5.py 958 B
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