Movies,plays, or TV shows in which an actor comes back to play a completely different character

Robert Mitchum in Cape Fear.

Gregory Peck, too.

In stage productions of The Rocky Horror Show, Eddie and Dr. Scott are usually played by the same actor. Meat Loaf played both roles in the original stage show, though they wound up casting a different actor for Dr. Scott in the movie.

Wow, of course you’re right about that. I started my post by naming Peck, checked online because I thought I was confusing the two (they look somewhat similar) and changed it to Mitchum. And I’ve seen both films a few times. Maybe I blanked on that because I don’t care for either film.

Speaking of Gregory Peck: he played Captain Ahab in the 1956 film of Moby Dick, then played Father Mapple in a 1998 TV miniseries of the story.

Joseph Gannascoli played a minor role in the Sopranos but then he came back as a main role Vito Spatafore in season 2.

Sheryl Lee played Laura Palmer, the murder victim who was the center of the mystery in the original Twin Peaks. She returned as Maddy Ferguson, Laura’s identical cousin. She was intended to only be a one-shot as Laura, but the producers liked her and brought her back.

Superman seems to do this a lot - Annette O’Toole played Lana Lang in Superman III and Martha Kent in Smallville.

If TV franchises count, Zoe McClellan played Petty Officer Jennifer Coates for several seasons on JAG, before returning to the franchise, years later, as NCIS Agent Meredith Brody, for the first two seasons of NCIS: New Orleans. For an example specific to one show, Catherine Bell appeared in a flashback as Harm’s dead girlfriend Diane, in Season 1 of JAG, before being cast as Sarah Mackenzie, beginning in Season 2.

IIRC, Jennifer Bini Taylor made multiple appearances as part of Charlie Harper’s rotating carousel of one-night stands on Two and a Half Men, before getting an extended run as his girlfriend/fiance, starting in Season 6.