Expect below style using python-docx: 1 item 1 1.1 item 1.1 1.2 item 1.2 2 item 2 2.1 item 2.1 2.2 item 2.2 I tried below code, but it doesn't work. It turn out to be: 1 item 1 1 item 1.1 2 item 1.2 2 item 2 1 item 2.1 2 item 2.2 numXML = doc.part.numbering_part.numbering_definitions._numbering nextAbstractId = max([J.abstractNumId.val for J in numXML.num_lst]) + 1 ct_num = numXML.add_num(nextAbstractId) formats = {0: "decimal", 1: "upperLetter" } textFmts = {0: '%1.', 1: '%2.' } for i in range(2): lvl = ct_num.add_lvlOverride(i) numFmt = OxmlElement('w:numFmt') numFmt.set(qn('w:val'), formats) numText = OxmlElement('w:lvlText') numText.set(qn('w:val'), textFmts) lvl.append(numFmt) lvl.append(numText) num_pr = p._element._add_pPr().get_or_add_numPr() il = num_pr.get_or_add_ilvl() il.val = ilvl ni = num_pr.get_or_add_numId() ni.val = ct_num.numId Continue reading...