Hello
I can't see any way to get intermediate results out of FindCycle, but you could build this up by computing cycles of given lengths and saving intermediate results. For example:
rg = RandomGraph[{10, 30}, DirectedEdges -> True]
fc[i_] := fc[i] = FindCycle[rg, {i}, All]
Save["cycles.m",{fc,rg}]
And then each time you want to compute a new set of cycles, just use:
Get["cycles.m"]
fc[6]
Save["cycles.m",{fc,rg}]