Following up on the discussion in Problem with EdgeWeight and FindCycle?, consider the simple directed graph:
graph = Graph[{1 \[DirectedEdge] 2, 2 \[DirectedEdge] 3, 3 \[DirectedEdge] 1, 3 \[DirectedEdge] 2 }, EdgeWeight -> {1 \[DirectedEdge] 2 -> 0, 2 \[DirectedEdge] 3 -> -1, 3 \[DirectedEdge] 1 -> 1, 3 \[DirectedEdge] 2 -> 1 }, EdgeLabels -> "EdgeWeight", VertexLabels -> "Name"] Note this graph has two circuits of length 0: 1 -> 2 -> 3 -> 1 and 2 -> 3 -> 2
FindCycle[graph,0] returns:
{{1 \[DirectedEdge] 2, 2 \[DirectedEdge] 3, 3 \[DirectedEdge] 1}} It only finds one of the two cycles. Is the "all" in
For weighted graphs, FindCycle[g,k] gives all cycles with total weights less than k.
incorrect as well?

