The deleted answer of A. Allet was in the right direction, but the xlop package not only can make automatically the multiplication. It can also show the shifted positions, as well as include comments with \oplput and \oprput:

\documentclass{article}
\usepackage{xlop}
\begin{document}
\opmul[displayshiftintermediary=all]{123}{456}
\oplput(1,3){(this is $123 \times 6$.)}
\oprput(-5,2){$+$}
\oplput(1,2){(this is $123 \times 5$, shifted one position to the left.)}
\oplput(1,1){(this is $123 \times 4$, shifted two positions to the left.)}
\end{document}
BTW, the inserted comments can be also an automatic multiplication so any mistyping could be more evident:

\documentclass{article}
\usepackage{xlop,xcolor}
\begin{document}
\opmul[displayshiftintermediary=all]{123}{456}
\oplput(1,3){(\opmul[style=text]{123}{6})}
\oplput(1,2){(\opmul[style=text]{123}{5})}
\oplput(1,1){(\opmul[style=text]{123}{4})}
\end{document}