x is being re-assigned in every iteration of the loop. You don’t even need to initialize it with x = 0–that line is pointless.
x + 1 doesn’t change the value of x, the result is a new value that is not assigned to anything.
In the first iteration, x is assigned 0 (the first value from range). When you write word = word + thing[0:x+1] it adds 1 to x so you end up with word being thing[0:1]. Then in the next iteration x is 1 and you add thing[0:2]. Overall you are adding up thing[0:1], thing[0:2], ... thing[0:len(thing)]. Given the input 123 that’ll be 112123.
In the second version, the statement x+=1 is pointless–immediately after that, you throw away x and reassign the next value from range. So you’re adding up thing[0:0], thing[0:1], ... thing[0:len(thing) - 1] which will be 112.