Telling fibonaccis to the user
Generators, not lists

Rather than returning a list of Fibonacci numbers, it would be much more useful to simply return an infinite generator of them. That is, yield them. This way, you don't even need the max:

def get_fibonacci_numbers():
    '''
    Generator for all the fibonacci numbers
    '''
    fib1 = 1
    fib2 = 1
    yield fib1
    yield fib2
    while True:
        yield fib1 + fib2
        fib1 = fib2
        fib2 = fib1 + fib2


Note that double assigns are actually better done in one go for clarity:

def get_fibonacci_numbers():
    '''
    Generator for all the fibonacci numbers
    '''
    fib1, fib2 = 0, 1
    while True:
        yield fib2
        fib1, fib2 = fib2, fib1 + fib2


If you want the first n numbers, you can use itertools.islice. 

Why a generator?

You can easily turn a generator into a list of specific size, so you're not losing any functionality this way. But there's simply so much you can do with a lightweight generator that you can't do with a list. Consider some simple problems - what's the first Fibonacci number over 1000? 

&gt;&gt;&gt; next(dropwhile(lambda x: x &lt; 1000, get_fibonacci_numbers()))


Euler problem #2: find the sum of the even-valued fibonacci numbers under 4 million?

&gt;&gt;&gt; sum(i for i in takewhile(lambda x: x &lt; 4e6, get_fibonacci_numbers()) if i%2 == 0)


Can't do either with a list. At least, not unless you know where to stop up front. 

If you want just the nth one, that's:

def get_nth_fibonacci(n):
    return next(itertools.islice(
        get_fibonacci_numbers(),
        n, None))