уточните: прогрессия должна быть непременно подряд, не короче (скольких?) элементов, если найдено несколько – какая лучше?
В примере можно найти наиболее длинную 1,2,4,8,16, а можно сказать, что нашли 1,4,16 и она круче (буквально) растёт
В цикле бежать с конца списка к началу, каждую итерацию делить предыдущее число на текущее, если хотя бы две итерации результат деления совпадают - мы нашли конец прогрессии, так как шли с конца, теперь идём дальше по списку, пока результат деления не будет отличаться. эта итерация и будет началом прогрессии.
Естественно есть получше решения, в том числе рекурсивные, более простые и лаконичные, но для понимания принципа - сойдёт
Составь новый список, в котором каждый элемент - это частное* двух соседних элементов исходного списка.
Если в новом списке будет несколько одинаковых** элементов подряд, то в исходном списке соответствующие элементы формируют геометрическую прогрессию.
*Не забываем про деление на ноль! Может потребоваться отдельная проверка.
**Не забывай про ограниченную точность чисел с плавающей точкой. Сравнивать такие числа лучше не как обычно, a == b, а с помощью конструкции вида abs(a - b) <= E, где ты задаёшь в E желаемую точность (например, 0.000001).