Поскольку я не знаю точно, как вы написали свой код, все, что я могу вам дать, это своего рода объяснение псевдокода:
function getPathsFromNode(node)
mark node
c = 0;
foreach neighbour in adjacent nodes of node
if neighbour is not marked
c += getPathsFromNode(neighbour) + 1
return c
function main()
n = 0
foreach node in graph
n += getPathsFromNode(node)
print("paths = ", n)
По сути это просто DFS для каждого узла графа.