Américo,
Antes de mais nada o curso que vc esta fazendo é de Python2, existe diferenças entre o Python3.
O Python suporta números inteiros de precisão arbitrária, o que significa que você pode representar números maiores que um tipo inteiro normal de 32 ou 64 bits. O L informa quando um literal é desse tipo e não um inteiro regular.
Note que isso L só aparece na saída do interpretador, apenas significa o tipo. Se você imprimir esse resultado em vez disso:
Python 2.7.15 (default, May 21 2018, 18:35:53)
[GCC 4.9.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 25 ** 25
88817841970012523233890533447265625L
>>> print(25 ** 25)
88817841970012523233890533447265625
>>>
O L não é impresso.
No Python 3, esses tipos foram mesclados, então o Python 3 gera:
Python 3.6.3 (default, Jan 11 2018, 19:15:22)
[GCC 4.9.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 25 ** 25
88817841970012523233890533447265625
>>> print(25 ** 25)
88817841970012523233890533447265625