Enumerating cycles in a graph using Tarjan's algorithm
In these lines:
for w in G[v]:
if w < s:
G[v].pop(G[v].index(w))
you are iterating through a list and popping elements from it. This stops the iteration from working as expected.
If you change the code to make a copy of the list it produces the extra cycles:
for w in G[v][:]: