An effective algorithm for the enumeration of edge colorings and   Hamiltonian cycles in cubic graphs
  We propose an effective algorithm that enumerates (and actually finds) all 3-edge colorings and Hamiltonian cycles in a cubic graph. The idea is to make a preliminary run that separates the vertices into two types: ``rigid'' (such that the edges incident to them admit a unique coloring) and ``soft'' ones (such that the edges incident to them admit two distinct colorings), and then to perform the coloring. The computational complexity of this algorithm is on a par with (or even below) the fastest known algorithms that find a single 3-edge coloring or a Hamiltonian cycle for a cubic graph. 
V. Ejov, N. Pugacheva, S. Rossomakhine and P. Zograf