Have a look at: approximating Hafnians. In particular, there are a several works on approximatingcomputing Hafnians, I can add them also in case you are unable to find them starting from the cited reference -- which also includes a short but good discussion about the complexity of the problem; in polynomial space, a Ryser like algorithm seems to be known, and thus $O(n^22^n)$; for non-polynomial space, the linked paper provides a $\tilde{O}(2^{n/2})$ method.