  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.
