  We present a general method for counting and packing Hamilton cycles in dense
graphs and oriented graphs, based on permanent estimates. We utilize this
approach to prove several extremal results. In particular, we show that every
nearly $cn$-regular oriented graph on $n$ vertices with $c>3/8$ contains
$(cn/e)^n(1+o(1))^n$ directed Hamilton cycles. This is an extension of a result
of Cuckler, who settled an old conjecture of Thomassen about the number of
Hamilton cycles in regular tournaments. We also prove that every graph $G$ on
$n$ vertices of minimum degree at least $(1/2+\varepsilon)n$ contains at least
$(1-\varepsilon)\textrm{reg}_{even}(G)/2$ edge-disjoint Hamilton cycles, where
$\reg(G)$ is the maximum \emph{even} degree of a spanning regular subgraph of
$G$. This establishes an approximate version of a conjecture of K\"uhn,
Lapinskas and Osthus.
