Search a list recursively and return the index of the smallest value
Yes, there is a concise way to do this, even without a recursive function and that is to use the built-in min function with a custom key:

from operator import itemgetter

def min_index(x):
    return min(enumerate(x), key=itemgetter(1))[0]


The enumerate function adds the indices and the operator.itemgetter ensures that min cares only about the actual value (here it is equivalent to lambda t: t[1]). The [0] at the end gets the index from the minimum tuple.

The usage is almost the same as your function, it returns the value so you have to  print it yourself. This is actually good practice because this way you can use the output of the function for other things afterwards.

if __name__ == "__main__":
    print(min_index([3,2,4,0,1,5,-6,2,5]))
    # 6




If you want to use numpy (i.e you are going to do some heavy calculations with these objects), there is a function which does exactly what you want already implemented, numpy.argmin:

import numpy as np

np.argmin([3,2,4,0,1,5,-6,2,5])
# 6