For retries I prefer loops instead of recursion because recursion can hide a problem in a massive stacktrace.

So it'd be something like:

```python

RETRIES = 5

for _ in range(RETRIES):
    try:
        make_req(...)
    except Exception as e:
        print 'Caught {0}'.format(e)
    else:
        break
```

Just a nit though. Recursion is perfectly functional here.