Find out the number under 1 million which produces the largest Collatz Sequence
I changed your main function a little bit to LargestCollatz which runs a bit faster on my machine. I'm not sure but I think the biggest improvement is in comparing two integers (c &lt; i) instead of the len function (i &gt; len(list)). Futhermore I used the impopular break statement and used // (which might be faster) instead of / so i could eliminate an int function. 

def LargestCollatz(n):

    # Collatz lengths, first entries are 'hand calculated'
    cl = [0, 1, 2]

    for i in range(3, n):
        c = i
        length = 0
        while True:
            if c % 2 == 0:
                c = c//2
            else:
                c = 3*c+1
            length += 1

            if c &lt; i:
                cl.append(length + cl[c])
                break

    return cl.index(max(cl))