解释编程语言中的递归，提供1个例子。
递归是一种编程技巧，它使用函数内部的自引用来解决问题，直到达到基本条件为止。在递归函数中，函数会多次调用自己，每次调用都会向问题的解决方案迈进一步，直到最终达到终止条件。

例如，下面是一个计算阶乘的递归函数：

```
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
```

在此函数中，如果n等于0，则返回1。否则，函数将返回n乘以调用factorial(n-1)的结果。函数将逐步减小n，直到达到0，这是递归的基本条件。