Iranian authorities have said a Ukrainian airliner, which crashed outside Tehran killing all 176 people on board, turned back after suffering a problem.

Both Canada and the United States called for a full investigation to determine the cause of Wednesday's crash, which came shortly after Tehran launched missiles at US troops in Iraq in response to the killing of a top Iranian general in a US drone strike in Baghdad.

There was no immediate indication that foul play may have caused the Ukraine International Airlines (UIA) plane to go down soon after take-off, and Ukrainian President Volodymyr Zelensky warned against speculating on the crash causes.

AP

"The plane, which was initially headed west to leave the airport zone, turned right following a problem and was headed back to the airport at the moment of the crash," the Iranian Civil Aviation Organisation said on its website.

"The plane disappeared from radar screens the moment it reached 8,000 feet (2,400 metres). The pilot sent no radio message about the unusual circumstances.

"According to eyewitnesses, a fire was seen on board the plane which grew in intensity," the organisation added, reporting the first findings of its investigation into the crash.

The organisation said it had questioned witnesses both on the ground and on board a second aircraft which was flying above the Ukrainian Boeing 737 as the disaster unfolded.

Santa doll in the wreckage

Heartbreaking details started emerging about the victims, most of them from Iran and Canada.

Body bags were lined up on the ground, and the passengers' personal items - including luggage, clothes, a Santa Claus doll and a boxing glove - were scattered in the debris.

According to Ukraine, 82 Iranians, 63 Canadians, 10 Swedes, four Afghans, three Germans and three Britons were on board, as well as 11 Ukrainians - including nine crew.

About 30 came from the Iranian community around Edmonton, capital of Alberta province in western Canada, where resident Payman Parseyan described the tragedy as "devastating".

AP

"Every one of our community members was touched in one way or another," he told Canada's national broadcaster CBC.

Iran's supreme leader Ayatollah Ali Khamenei offered his "sincere condolences" to the bereaved families.

No cooperation with the US

Iran's civil aviation chief, Ali Abedzadeh, said Iran would cooperate with Ukraine, but not send the black boxes to the United States, with which it has had no diplomatic relations for four decades.

Without naming Iran directly, US Secretary of State Mike Pompeo issued a statement calling for "complete cooperation with any investigation into the cause of the crash".

According to aviation experts, only a handful of countries are capable of analysing black boxes - notably Britain, France, Germany and the United States.

READ MORE Grief and mourning after Ukrainian plane crash in Iran kills 176

Canadian Prime Minister Justin Trudeau said his government would ensure a "thorough investigation" and that "Canadians' questions are answered".

The country is home to a large Iranian diaspora, and UIA offers relatively inexpensive flights between Toronto and Tehran, with a layover in Kiev.

UIA, the ex-Soviet country's privately owned main carrier, said flight PS752 took off from Tehran airport at 6.10 am and disappeared from radars minutes later.

It slammed into farmland at Khalaj Abad, in Shahriar county, about 45 kilometres northwest of the airport, Iranian state media said.

READ MORE More than 170 people killed after Ukrainian airliner crashes in Iran

A video aired by Iran's state broadcaster appeared to show the plane already on fire as it fell.

The airline said the Boeing 737 had been built in 2016 and checked only two days before the accident. It was UIA's first fatal crash.