В чем проблема работы данного кода?
Представьте. что у вас уже есть на текущий момент самое большое и предыдущее самое большое число из всех, что попадались до сих пор. И вот вы нащли число, которое больше самого большого. Очевидно. что предыдущее самое большое надо подвинуть, а вы этого не делаете.

Такие задачи проще всего решать начиная со штатной ситуации, а потом отрабатывать исключенияи специфические кейсы.
Нарисуйте цепочку чисел, укажите стрелочкой на текущее и для этой позиции вручную найдите саоме большое и предыдущее. Потом подумайте какие будете делать операции.
В вашей программе не учитывался случай, когда самое большое число в массиве находится после значения уже присвоенного переменной maxx. Например [1900,1232,2000,32,12,3,23], Также не отрабатывались случаи, когда два максимальных числа равны. 
Исправленная программа
n = list(np.random.randint(0, 100, size=random.randint(2, 20)))
maxx = 0
maxx2 = 0
for n2 in n:
    if n2 >= maxx:
        maxx2 = maxx
        maxx = n2
    elif n2 < maxx and n2 > maxx2:
        maxx2 = n2
print(maxx,maxx2)