Hollywood is like a perpetual game of sliding doors, so for every role that's won, another is lost or missed out on. And these 10 famous parts almost went to other stars.
1. Black Widow in 'The Avengers'
Played by: Scarlett Johansson
Missed out: Emily Blunt
The British actress was the first choice to play the Marvel superhero, but the role went to American star Scarlett Johansson. When asked if she regretted turning down the part Johansson will have played in nine films when Black Widow comes out next year, Blunt insists she doesn't.
"I'm never regretful about not doing something; I didn't do it at the time because it wasn't the right time and I was contracted to do something else," she told Screenrant. "But Scarlett has done such a phenomenal job – she's it! Like why even reminisce about what could've been? She's it and she nailed it and I love The Avengers."
Interestingly, the Mary Poppins Returns actress also passed on the role of agent Peggy Carter in Captain America: The First Avenger, which then went to Hayley Atwell.
2. David Mills in 'Se7en'
Played by: Brad Pitt
Missed out: Denzel Washington
Double Oscar winner Denzel Washington has called turning down the role of Mills in 1995 film Se7en a "mistake", with the part eventually going to Brad Pitt who won critical acclaim for his portrayal.
"I turned down the movie Se7en. That was a mistake," he told The Grio. "I just didn't think anybody was going to see it. I don't know what I made instead, I can't remember, but I turned [Se7en] down. I guess Brad Pitt is happy about that."
3. Forrest Gump in 'Forrest Gump'
Played by: Tom Hanks
Missed out: John Travolta
It’s hard to imagine anyone else playing the role that won Tom Hanks a Best Actor Oscar (his second) at the 1995 Academy Awards, but Forrest Gump was almost played by John Travolta.
“If I didn't do something Tom Hanks did, then I did something else that was equally interesting or fun,” he told MTV. “Or if I didn’t do something Richard Gere did, I did something equally well. But I feel good about some I gave up because other careers were created.”
The same year Forrest Gump came out, Travolta appeared in Tarantino's Pulp Fiction in a role that reinvigorated his career.
4. Annie Porter in 'Speed'
Played by: Sandra Bullock
Missed out: Halle Berry
Admitting it was "stupid" to have turned down the role that made Sandra Bullock a household name, Halle Berry says her decision was based on the fact she saw a completely different script, and she didn’t know Keanu Reeves would be involved.
“I stupidly said ‘no’. But in my defence, when I read the script the bus didn't leave the parking lot. I was like, 'no, no, no, no',” said Berry, who would go on to become the first black woman to win the Best Actress Oscar. She said she was convinced the film would flop, “[but] then I see the movie and I'm like, ‘arrrrghh’.”
5. Indiana Jones in 'Indiana Jones'
Played by: Harrison Ford
Missed out: Tom Selleck
Harrison Ford might have wowed his Star Wars director George Lucas when he played Han Solo, but when it came to taking on the role of Indiana Jones, Lucas, who was executive producer on the Steven Spielberg-helmed series, needed some convincing.
Lucas had his heart set on Tom Selleck donning the famous fedora, and Selleck even did a screen test to play the adventurous archaeologist. But due to filming obligations with Magnum PI, Selleck was out and Harrison was in.
You can watch Selleck's audition here:
6. Andy Sachs in 'The Devil Wears Prada'
Played by: Anne Hathaway
Missed out: Rachel McAdams
"I had to be patient. I wasn't the first choice," Anne Hathaway says of the role of Andy Sachs in the surprise hit film, The Devil Wears Prada. In fact, producers approached Canadian star Rachel McAdams several times for the role, but the Mean Girls actress repeatedly turned it down.
And Hathaway remembers the moment she got the call to say the part was hers, telling People: "I had some buddies over. I remember running out in my living room, half dressed, screaming – I got The Devil Wears Prada! I got The Devil Wears Prada!"
7. Aragorn in 'Lord of the Rings'
Played by: Viggo Mortensen
Missed out: Nicolas Cage
With the Lord of the Rings trilogy filmed back to back in New Zealand, the cast have spoken about what a huge commitment it was when they took the roles.
And it was time constraints that led Hollywood star Nicolas Cage to turn down the role of Aragorn.
"There were different things going on in my life at the time that precluded me from being able to travel and be away from home for three years," Cage told Newsweek.
He said he was happy to enjoy the films as a fan rather than their star.
8. Albus Dumbledore in 'Harry Potter'
Played by: Richard Harris and Michael Gambon
Missed out: Ian McKellan
To be fair, veteran British actor Ian McKellan not so much missed out on the role of Hogwarts headmaster Albus Dumbledore, as turned it down in tribute to the late Richard Harris.
Irish star Harris played Dumbledore in the first two films, 2001's Harry Potter and the Philosopher's Stone and Harry Potter and the Chamber of Secrets in 2002.
But when he died in October 2002 at the age of 72, the hunt was on for a replacement.
"There was a question as to whether I might take over from Richard Harris," McKellan told The Guardian.
“But seeing as one of the last things he did publicly was say what a dreadful actor he thought I was, it would not have been appropriate for me to take over his part. It would have been unfair.”
9. Christian Grey in 'Fifty Shades of Grey'
Played by: Jamie Dornan
Missed out: Charlie Hunnam
Sons of Anarchy star Charlie Hunnam's announcement as Christian Grey was made with much fanfare back in October 2013, but he dropped out just days later. And 11 days after that, model-turned-actor Jamie Dornan stepped into the role.
Hunnam later admitted his decision was driven by a fear of failure.
"I just said, 'I can't, I can't," he told Moviefone. "Fifty's going to be massive, it's going to be huge. I really didn't want to fail on such a grand scale and I just couldn't transition from Jax Teller [in Sons of Anarchy] to Christian Grey in 48 hours."
10. Django in 'Django Unchained'
Played by: Jamie Foxx
Missed out: Will Smith
Creative differences are what led Will Smith to drop out of the lead role in 2012's Django Unchained, which also featured Leonardo DiCaprio and Kerry Washington.
"To me, it's as perfect a story as you could ever want: a guy that learns how to kill to retrieve his wife who has been taken as a slave," Smith told The Hollywood Reporter.
"That idea is perfect. And it was just that Quentin [Tarantino] and I couldn't see eye-to-eye."
But when the director wouldn’t budge on making love, not revenge, Django’s motivation, Smith dropped out.
“I just couldn't connect to violence being the answer,” he said. “Love had to be the answer.”