I had to write this for Pynac. Here's the 1-liner that does it...
def doublefactorial(x):
n = Integer(x)
if n < -1:
raise ValueError, "argument must be >= -1"
return prod([n - 2*i for i in range(n//2)])
sage: doublefactorial(20)
3715891200
Yes, Integers have a (highly optimized) multifactorial method.
sage: a = 20
sage: a.multifactorial(2)
3715891200
- Robert