Avoiding Exception Value: maximum recursion depth exceeded while calling a Python object in Django signals
Alter your need.  "Overcoming" the recursion would just mean that you succeed at creating infinite objects, which is inadvisable.
If what you really need is to create a second Invoice only when the first one was created manually, well, that's different.  Make your function do nothing unless the sender is manually-created.  If you really can't tell the difference between manual and automatic, add a field that tells you.  (Though surely there's something unique about the automatic objects, or you wouldn't need to create them!)
I need to create an invoice object whenever an invoice is created from inside post_save.connect(after_saving_invoice, sender=Invoice). This is causing Exception Value: maximum recursion depth exceeded while calling a Python object.
The reason of the exception is clear but how can I overcome it?