------
## 最终结论
```python
def min_integer(num: str, k: int) -> str:
    num_list = list(num)  # 将字符串转换为列表以便进行字符插入操作
    n = len(num_list)
    
    for i in range(n):
        if k <= 0:
            break
        # 在当前位之后寻找可以交换的最小数字
        min_pos = i
        for j in range(i + 1, min(i + k + 1, n)):
            if num_list[j] < num_list[min_pos]:
                min_pos = j
        
        # 如果找到更小的数字，进行交换
        while min_pos > i and k > 0:
            # 交换相邻的数字
            num_list[min_pos], num_list[min_pos - 1] = num_list[min_pos - 1], num_list[min_pos]
            min_pos -= 1
            k -= 1

    return ''.join(num_list)

# 示例用法
print(min_integer("4321", 4))  # 输出: "1342"
print(min_integer("100", 1))   # 输出: "010"
print(min_integer("36789", 1000)) # 输出: "36789"
print(min_integer("22", 22))    # 输出: "22"
print(min_integer("9438957234785635408", 23)) # 输出: "0345989723478563548"
```