There's no definitive resource on how Python does its garbage collection (other than the source code itself), but those 3 links should give you a pretty good idea.
Update
The source is actually pretty helpful. How much you get out of it depends on how well you read C, but the comments are actually very helpful. Skip down to the collect()
function and the comments explain the process well (albeit in very technical terms).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…