Код:
(1021..1039 | Group-Object {
$s = [String]$_;$s.Substring(0, $s.Length - 1)
} | Select-Object @{
N='Name';E={"$($_.Name)[$(-join$_.Group.ForEach{([String]$_)[-1]})]"}
}).Name
Итог:
Код:
102[123456789]
103[0123456789]
Если нужны именно диапазоны вроде [1-7] или нечто в этом роде, можно выкинуть
select и жахнуть
linq'ом.