Definition

RecursionΒ 
meansΒ 
aΒ 
functionΒ 
callsΒ 
itself
Β 
insideΒ 
theΒ 
functionΒ 
body.
TheΒ 
functionΒ 
keepsΒ 
onΒ 
callingΒ 
itselfΒ 
untilΒ 
itΒ 
getsΒ 
aΒ 
returnΒ 
valueΒ 
atΒ 
someΒ 
point.Β 
AndΒ 
thenΒ 
allΒ 
theΒ 
functionsΒ 
thatΒ 
wereΒ 
called,Β 
getΒ 
theirΒ 
respectiveΒ 
returnΒ 
values.
Β 
CheckΒ 
theΒ 
call_for_lunch()Β 
example.
def call_for_lunch(friend1) :
        print("Time for lunch?")
        def call_for_lunch(friend2) :
                print("Time for lunch?")
                return 10
        return time
#Here friend2 is the base case, as they give a return value 10, and that is passed on to friend1, and they return the same value here.

Base Case

TheΒ 
innermostΒ 
pointΒ 
ofΒ 
recursion,Β 
whichΒ 
givesΒ 
theΒ 
firstΒ 
properΒ 
returnΒ 
value,Β 
isΒ 
calledΒ 
theΒ 
base
Β 
case
.