Tricks to evaluate expectation values for operator strings in second quantisation I am taking a course in many-body quantum mechanics. Often, I have to evaluate expectation values on strings of creation/annihilation operators. I was told that to evaluate these, I should use the (anti)commutator relations to normal-order the string of operators, leaving us with terms in which annihilation operators act on the vacuum (and thus evaluate to $0$).
This works, but I am finding it cumbersome - since I have to apply the commutator relations many times, and each time creates another term. For example, consider the following expression, where the $d_{\alpha\sigma},d^\dagger_{\alpha\sigma}$ are fermionic annihilation/creation operators:
$$ \langle0|d_{0\uparrow}d_{0\downarrow}d_{\alpha\sigma}^\dagger d_{\alpha'\sigma'}d_{0\downarrow}^\dagger d^\dagger_{0\uparrow}|0\rangle$$
To normal-order this, I'd have to apply 8 anticommutator relations to get all the annihilation operators on the right, giving me a large number of terms. Are there some shortcuts I can use to evaluate expressions like this quickly?
 A: Yes, there is a trick - it's sometimes called Wick's theorem, https://en.wikipedia.org/wiki/Wick%27s_theorem. To get something nonzero from that string, every annihilation operator like $d_{0\uparrow}$ must have an accompanying creation operator $d^\dagger_{0\uparrow}$. Wicks' theorem says count the number of ways you can pair up a given annihilation operator with a corresponding creation operator, for each choice replace those pairs with their commutator, then sum over all such contractions. If the operators are fermionic, then you pick up plus/minus signs for even/odd permutations.
Here's an example: $\langle 0|a_ia_ja^\dagger_ka^\dagger_l|0\rangle$, for the usual bosonic operators of the harmonic oscillator. The commutator evaluated in the ground state is $ \langle 0|[a_i,a^\dagger_j]|0\rangle=\delta_{ij} $. Note, if we were working with fields and were trying to calculate expectation values of products of fields, then the expectation value of the commutator is a Green's function rather than a more benign Kronecker delta. There are two choices of contraction: pair $a_i$ with $a^\dagger_k$ or $a^\dagger_l$. We sum these two choices, and in each term we replace our contracted operators with a delta, and end up with $\delta_{ik}\delta_{jl}+\delta_{jk}\delta_{il}$. 
It's pretty straightforward to apply this procedure to your $d$s, only that since they're fermions, you want to add a minus sign to a contraction if the contraction pairing of operators is an odd permutation.
