The Liberal Democrats are “within a small swing of winning hundreds of seats”, the party’s leader, Jo Swinson, has claimed, as the main parties begin pushing out key messages before what is billed as the most volatile general election in living memory.

Although the official campaign does not begin until parliament is dissolved next week, the near-certain passage through parliament of a bill calling a 12 December poll has prompted party election machines to swing immediately into action.

MPs voted on Tuesday night to pass the bill, unblocking a long deadlock. It will now be sent to the Lords and is set to become law within days.

While Swinson took to the airwaves to talk up her party’s chances of making a significant breakthrough, the health secretary, Matt Hancock, insisted the Conservatives were the only party that could push through Brexit.

John McDonnell, the shadow chancellor, told broadcasters that Labour expected to confound the polls as it did in the 2017 election, and warned that Swinson’s Lib Dems could go into coalition with the Conservatives.

Meanwhile, it has emerged that Brexit rebel Dominic Grieve considered joining the Lib Dems to run as one of their candidates. It is understood the former attorney general and remain campaigner had talks with Lib Dem party officials where it was decided it would be better to run as an independent Conservative instead.

A Lib Dem party source said they would have been happy to have him on board but he did not ultimately make the leap.

They also believe he will follow a “soft whip” from the Lib Dems if he is re-elected, which means he might choose to vote with the group on Brexit and a number of other policies.

The Lib Dems are not fielding a candidate in Grieve’s Beaconsfield seat to give him a clear run at capturing remain voters in this ultra safe Tory stronghold, where he currently has a 24,000 majority.

Grieve has blocked a no-deal Brexit in parliament through a range of legislative procedures and also backs a second referendum. He denies he approached the Lib Dems to discuss joining their ranks.

Swinson rejected the idea of supporting either Boris Johnson or Jeremy Corbyn in government and told BBC Radio 4’s Today programme that her party’s “stop Brexit” message was resonating in “seats with all sorts of permutations”.

She said the local elections in May showed that the party could win in areas beyond its current scope of 19 MPs, a total boosted by defections and a byelection win after the Lib Dems won 12 seats in the 2017 election.

Challenged on whether she could really move the party into government from such a low base, Swinson said: “This is a volatile time in politics. Nobody needs to look at received wisdom or what’s happened in the past.

“Our polling show that we are within a small swing of winning hundreds of seats, because the political landscape is so totally changed by what has happened in our country post-Brexit.”

Speaking on Sky News, Hancock said a vote for the Lib Dems or another party was “a vote to put Corbyn in Downing Street and have more referenda and more blockage and delay”.

Speaking later to the BBC, Hancock dismissed the idea of a notable Lib Dem surge. He said: “There’s no chance of them getting a majority. Instead, if you want to move this country forward, get things moving, there’s only way to do it, and that’s by voting Conservative.”

McDonnell said that while Labour had initially been resistant to an election, the party was ready. “We wanted to give the government a chance to bring forward its bill. But they curtailed the time, and so all we could say was at least let’s get no deal off the agenda, and that’s what happened. So, let’s bring it on,” he told BBC One’s Breakfast.

He said voters should be wary of Swinson’s aims, saying: “If the Lib Dems have said they no longer support a people’s vote and they want to side with the Tories – it looks as though they’re going into coalition again, like they did in 2010.”