input: Write a function to calculate the determinant of a matrix using recursion.
  assert determinant([[1, 0], [0, 1]]) == 1
  assert determinant([[2, 5], [1, 3]]) == 1
  assert determinant([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) == 0
output: def determinant(matrix):
      # Base case for 2x2 matrix
      if len(matrix) == 2:
          return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0]
  
      # Recursive case for larger matrices
      det = 0
      for c in range(len(matrix)):
          sub_matrix = [row[:c] + row[c+1:] for row in (matrix[1:])]
          det += ((-1) ** c) * matrix[0][c] * determinant(sub_matrix)
      
      return det