Look at my example, note:
1) You call the recursive function ONE time, only. After that ONE call in main(), the recursive function calls itself the correct number of times, because you set up the base case. That tells it when it should end.
Remove your for loop in main() which calls the recursive function.
2) The printing is done INSIDE the recursive function, not in main().
3) You need an if statement in the recursive function, to give it the logic when it should return. You don't have that if statement in yours yet.