Translated into English: in order to print a string in reverse, you first reverse-print everything except its first character, then you print its first character. If the string is empty, you do nothing.
Recursion, like the idea of functions in general, is older than computers. You can understand it without knowing a single thing about how a programming language might be implemented.
(It helps if you're familiar with mathematical induction, but it's definitely not a requirement.)
In fact, if you understand that in order to "first do this, then do that", that has to wait until this is done, you've pretty much understood everything.
The only thing missing, and what makes it recursive, is that in order to accomplish this, you may possibly need to do a smaller bit of "this, then that" first.
More concretely, suppose we want to print "abc" in reverse.
One way to look at it as that we need to first print 'c', then 'b', then 'a'.
Another way is to say that we can first print "cb", then 'a'.
But "cb" is also the reverse of the "tail" of "abc", so we should be able to use the same procedure for reversing both "abc" and "bc" - as long as we know how to reverse a shorter string, we can do that and then tack the string's first character on afterwards.
When does it end?
When we reach the shortest possible string, the empty string, we don't need to do anything, so that's where it ends.
Slightly more formally, we can use this procedure:
- If the string is empty, do nothing.
- If the string is not empty:
- First print, using this procedure, all the characters except the first one,
- Then print the first character.
and reversing "abc" will go like this:
Reverse "abc"
-> Reverse "bc", then print 'a'
-> Reverse "c", then print 'b', then print 'a'
-> Reverse "", then print 'c', then print 'b', then print 'a'
Reversing "" is to not do anything.
After we've done nothing, we can continue executing the rest of the sentence.
-> print 'c', then print 'b', then print 'a'
[Output: c]
-> print 'b', then print 'a'
[Output: cb]
-> print 'a'
[Output: cba]