How can I find circular relations in a graph with Python and Networkx?
Question: Consider I have the following graph:

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

What is the easiest way to find that A -> B -> C -> A is a circular relation?
Is there such a function already built into NetworkX or another easy to use
Python library?


Answer: [`networkx.simple_cycles`](http://networkx.lanl.gov/reference/generated/networkx.algorithms.cycles.simple_cycles.html#networkx.algorithms.cycles.simple_cycles)
does this for you.

    
    
    >>> import networkx as nx
    >>> G = nx.DiGraph()
    >>> G.add_edge('A', 'B')
    >>> G.add_edge('B', 'C')
    >>> G.add_edge('C', 'D')
    >>> G.add_edge('C', 'A')
    >>> nx.simple_cycles(G)
    [['A', 'B', 'C', 'A']]
    

