Why is this for loop not running?

I wrote a script that is supposed to loop through a table containing the left and right hands of the player, and it checks whether the player’s hands touched the object but it ain’t running.
The script(Excerpt):

local LeftHand = Character:WaitForChild("LeftHand")
local RightHand = Character:WaitForChild("RightHand")
local PunchingBag = workspace.PunchingBag.Union
local Limbs = {LeftHand,RightHand}
PunchingBag.Touched:Connect(function(Hit)
	print("Punched1")
	for i,Hands in ipairs(Limbs) do
		if Hit.Parent == Hands and Hit:IsDescendantOf(Character) then
			print("Punched2")

Punched 1 gets printed but punched 2 doesn’t, what’s going on here?
Edit: I did another print test directly under the Ipairs loop and turns out that it runs, so it’s the hit.parent check that doesn’t run, there are no errors in the output either so what could be the possible reason for it?

When a player is touching the part, Hit would be the body parts. Hit.Parent would return the character model. Because Limbs is the body parts of the character, hence the if statement doesn’t evaluate to true. You should change Hit.Parent to Hit.

Riighhht that makes a lot more sense.