You could use while-loop with bbox2[:k] and bbox2[k:] to convert list to 2D list
bbox2 = [126,0,178,38,0,254,415,316,472,0,390,292,423,326,0]
k = 5
list2D = []
while bbox2:
    list2D.append(bbox2[:k])  # beginnig elements
    bbox2 = bbox2[k:]         # rest of list
print(list2D)
Result:
[ 
   [126, 0, 178, 38, 0], 
   [254, 415, 316, 472, 0], 
   [390, 292, 423, 326, 0]
]
And this list is simply to convert to list of strings
substrings = ["DSC07368_053.jpg"]
for sublist in list2D:
    text = ",".join( map(str, sublist) )
    substrings.append(text)
    
print(substrings)   
Result:
[ "DSC07368_053.jpg", "126,0,178,38,0",  "254,415,316,472,0", "390,292,423,326,0" ]
And now you need only " ".join() to convert to single string
result = " ".join(substrings)
Result:
DSC07368_053.jpg 126,0,178,38,0 254,415,316,472,0 390,292,423,326,0
Full code can be reduced to
bbox2 = [126,0,178,38,0,254,415,316,472,0,390,292,423,326,0]
k = 5
substrings = ["DSC07368_053.jpg"]
while bbox2:
    sublist = bbox2[:k]  # beginnig elements
    bbox2 = bbox2[k:]    # rest of list
    text = ",".join( map(str, sublist) )
    substrings.append(text)
    
result = " ".join(substrings)
print(result)
But version with while-loop destroys original bbox2 and to keep original bbox2 you would have to duplicate it with bbox2.copy().
Or it is situation when range(len()) can be useful.
bbox2 = [126,0,178,38,0,254,415,316,472,0,390,292,423,326,0]
k = 5
substrings = ["DSC07368_053.jpg"]
for x in range(0, len(bbox2), k):
    sublist = bbox2[x:x+k]
    text = ",".join(map(str, sublist))
    substrings.append(text)
    
result = " ".join(substrings)
print(result)
It can be use to create useful function slicer()
def slicer(data, k):
    for x in range(0, len(data), k):
        yield data[x:x+k]
    
# ---
bbox2 = [126,0,178,38,0,254,415,316,472,0,390,292,423,326,0]
k = 5
substrings = ["DSC07368_053.jpg"]
for sublist in slicer(bbox2, k):
    text = ",".join(map(str, sublist))
    substrings.append(text)
    
result = " ".join(substrings)
print(result)