Encontrando todos os ciclos em um gráfico direcionado

Como posso encontrar (iterar) TODOS os ciclos em um gráfico direcionado de / para um determinado n

Por exemplo, eu quero algo como isto:

A->B->A
A->B->C->A

mas não: B-> C-> B