Algorithms to find the number of Hamiltonian paths in a graph
According to Wolfram Alpha,
... the only known way to determine whether a given general graph has a Hamiltonian path is to undertake an exhaustive search
I believe you would want to start by finding a single hamiltonian path, and then splitting it into two paths, making the split point one that clearly separates the two paths as much as possible. Then you can find the permutations in the subgraphs (and recurse, of course!)
I don't know the exact algorithm, but that sort of divide and conquer method is where I would start.