Pouring water between two jugs to get a certain amount in one of the jugs (2)
Your code is not a “good” practice at recursion.  Every “recursive” call to jugSolver is the last statement that is executed in the current call, thus the whole function can easily be replaced by a simple loop:

print(amt1, amt2)
while amt1 != t  and  amt2 != t:
    if amt2 = jug2:
        amt2 = 0
    elif amt1 != 0:
        if amt1 &lt;= jug2 - amt2:
            amt1, amt2 = 0, amt1+amt2
        else:
            amt1, amt2 = amt1 - (jug2-amt2), jug2
    else:
        amt1 = jug1
    print(amt1, amt2)


Your assumption that pouring from the smaller jug into the bigger jug always results in the minimum number of steps is flawed.  Consider t=2.  Your way:


5, 0
0, 5
5, 5
3, 7
3, 0
0, 3
5, 3
1, 7
1, 0
0, 1
5, 1
0, 6
5, 6
4, 7
4, 0
0, 4
5, 4
2, 7


Compare with:


0, 7
5, 2


So you’ll need to relook at solving the problem with different possible moves.