Take a look at the wikipedia article for
Hamiltonian Cycle (and the related Hamiltonian path).
This is one of the long standing problems of classical Graph Theory. You should probably
get familiar with the problem and approaches people have come up with and try to map
them onto what you actually want to do.
Another useful search phrase for a similar problem is "the Traveling Salesman Problem"
which searches for the smallest weighted hamiltonian cycle.
A related question is whether a cycle exists that can visit every **edge** in the graph.
That is called an eulerian cycle.
For networkx, we have more for eulerian cycles than for hamiltonian cycles.
None of these restrict to finding hamiltonian cycles, so you will likely have to develop something.
The 2.6 version about to come out (and available on github) has a set of functions for
approximating solutions to the traveling_salesman_problem.