Problem 6: Falling Factorial (100pts)

Let's write a function falling, which is a "falling" factorial that takes two arguments, \( n \) and \( k \), and returns the product of \( k \) consecutive numbers, starting from \( n \) and working downwards. (This problem is an advanced version of Problem 2, Lab 01.)

def falling(n, k):
    """Compute the falling factorial of n to depth k.

    >>> falling(6, 3)  # 6 * 5 * 4
    120
    >>> falling(4, 3)  # 4 * 3 * 2
    24
    >>> falling(4, 1)  # 4
    4
    >>> falling(4, 0)
    1
    """
    "*** YOUR CODE HERE ***"