I did something similar to what you're looking for but with start/end dates in a set interval. I'll try to explain what I did!
I had a parent table, Agreements, and a child table, Rental Amounts. The idea was that the user would enter [Rental Payment Effective Date], [Rental Payment End Date], and the [Payment Frequency] (monthly, yearly, or one time). In the Agreements table I also had a checkbox for [Trigger to Create First Rental Amount Record]. I made a button that the user clicked to mark the trigger checkbox as true.
I then created two pipelines. The first was On New Event, when an agreement record was added or updated and the [Trigger to Create First Rental Amount] was checked. This created the initial child record and populated the following fields on the child record: [Effective Date], [Due Date] (calculated based on effective date and payment frequency), [End Date], [Amount], [Payment Frequency], and [Related Agreement]. The pipeline then unchecked the trigger checkbox, in the event that the user needed to add additional rental payment records.
The second pipeline triggered whenever a rental amount record was created and the [Payment Frequency] was not "One Time". I had a "condition" step that checked the [End Date] against a formula field for [Next Due Date]. [Next Due Date] looked at the [Payment Frequency] and used either AdjustMonth or AdjustYear to calculate the next payment due date. If the [Next Due Date] was after the [End Date], then the pipeline stopped. If the [Next Due Date] was before the [End Date], another rental amount record was created, populating [Next Due Date] into the [Due Date] field. With this, it keeps creating child records until that [End Date] is before the [Next Due Date], at which point it stops.
You could probably apply similar logic to what you're trying to do, using numbers instead of dates. You could have the user enter the [Number] of child records to be created, and then have a counter on the child record to calculate the [Next Number] (or whatever you want to call it). You don't have to display the counter, but the pipeline could trigger if [Next Number] is less than or equal to the current [Number], and then stop if [Next Number] is greater than [Number].
Sorry, that's a massive explanation and I hope it made sense. If I can provide any more details, please let me know.