I am doing a research on networks which consist of polygons with different number of sides. I am trying to find all rings (or cycles) in a network. As an example, consider the following graph:

    graph = Graph[
      {
        1 <-> 2,   2 <-> 3,   3 <-> 4,  4 <-> 5,   5 <-> 6,   1 <-> 6,  
        3 <-> 7,   7 <-> 8,   8 <-> 9,  9 <-> 10, 10 <-> 11, 11 <-> 3,
        4 <-> 12, 12 <-> 13, 13 <-> 11
      }, 
        VertexLabels -> "Name"
    ]

![enter image description here][1]

`{1,2,3,4,5,6}, {3,4,11,12,13},{3,7,8,9,10,11}` are rings and we can extract them by using [Teake's answer][2]:

    cycles = FindFundamentalCycles[graph];
    rings = Sort @* VertexList @* Graph /@ cycles  

![enter image description here][3]

But now consider the following graph:

    grapht = Graph[
    {
      1 <-> 2, 1 <-> 3, 2 <-> 4, 4 <-> 5, 5 <-> 6, 4 <-> 6, 
      6 <-> 7, 3 <-> 5, 3 <-> 9, 5 <-> 8, 8 <-> 9
    },
    VertexLabels -> "Name"];

![enter image description here][4]

Rings (cycles) are:

    cyclest = FindFundamentalCycles[grapht]; 
    HighlightGraph[grapht, #] & /@ cyclest

![enter image description here][5]

But I need to get `{4,5,6}` as a ring not `{1,2,3,4,5,6}` since there is an edge in the latter. Is there any way to customize `FindFundamentalCycles` function?


----

[W Community crosspost](http://community.wolfram.com/groups/-/m/t/228654?p_p_auth=xf2WGW0E)


  [1]: https://i.sstatic.net/tJvz6.png
  [2]: http://mathematica.stackexchange.com/a/61328/12594
  [3]: https://i.sstatic.net/ySNib.png
  [4]: https://i.sstatic.net/NcORI.png
  [5]: https://i.sstatic.net/kiPSi.png