Mr Assad said “every war is bad” but defended his recapture of the rebel-held part of the city, adding the only alternative to the major offensive would have been to leave civilians with “terrorists”.
He said: “Is that the role of the state, just to keep and watch? You have to liberate, this is the price sometimes.”
Around 21,500 civilians have died in Aleppo since the start of the civil war in 2011, according to the Syrian Observatory for Human Rights.
The Syrian president’s comments come ahead of planned peace talks later this month in Kazakhstan, which have been brokered by Turkey and Russia.
Mr Assad said the scope of the talks would have “no limit” but admitted they hinge on “who is going to be there from the other side”.
Rebel groups have threatened to boycott the conference, citing what they say are ceasefire violations by the government and its allies.
On Saturday, at least 43 people were killed in a bomb blast in Azaz, a town close to the Turkish border where many rebels and civilians settled after fleeing Aleppo.
The blast was the worst since the nationwide ceasefire between rebels and the Syrian government came into force.
A day later talks broke down over Wadi Barada, a rebel-held valley that is under siege by government troops.
The area includes the main water source supplying Damascus, which was bombed out of service in December.
The UN says 5.5m people have had little or no running water as a result of the blast.
Mr Assad claimed rebels were “using the water to throttle the capital”, while insurgents blamed the government.
Jan Egeland, chair of the UN’s Syria taskforce, said the outage had “dramatic consequences” and urged both sides to come to an agreement over the repair of supplies.
He also warned that “to sabotage and deny water is a war crime”.