def number(n,key=None, reverse=False):
    l = len(n)
    for i in range(l - 1):
        swap = False
        for a in range(l - 1 - i):
            if key:
                if key(n[a]) > key(n[a+1]):
                    swap = True
            else:
                if n[a] > n[a + 1]:
                    n[a], n[a + 1] = n[a + 1], n[a]
                    swap = True
        if not swap:
            break
        print(n)

    if reverse:
        return n[::-1]
    else:
        return n

n = [4,9,1,5,3,7]
print(number(n))
