Update garage.py
Update garage.py

Check for the case:
initial = [3,1,2,0]
final = [2,3,0,1]

between state:
[3,0,2,1]
[0,3,2,1]
[2,3,0,1]
So only 3  moves needed while yourt program gives five moves.
amaozhao/algorithms,keon/algorithms