Это кажется мне самым простым и гибким.
Для XSLT 1.0 (или, возможно, 1.1).
<xsl:variable name="count">10</xsl:variable>
<xsl:variable name="repeat"><xsl:text>	</xsl:text></xsl:variable>
<xsl:sequence select="string-join((for $i in 1 to $count return $repeat),'')"/>
Конечно, переменная count - это место, где вы присваиваете свой параметр n .
Я использовал переменную repeat для удержания символа tab , но вы можете просто заменить $ repeat на символ табуляции в одинарных кавычках в последовательности элемент. Примечание: Эта переменная может иметь длину больше 1, что создает целый ряд возможностей.
Он не использует рекурсию, поэтому не достигнет предела рекурсии.
Я не знаю максимального значения, которое вы можете использовать для подсчета, но я проверял его до 10 000.