To mine bitcoin I believe that you take the input and add a salt number to that then run the hashing algorithm to find a suitable output, but how large can the salt be, couldn't I just take the current input subtract it from the previously found bitcoin input+salt to get a new salt, and use that new input plus new salt to find a suitable output (same output as the old bitcoin)?
It's actually called a "nonce".
It is a 32-bit number so is maxed at
If the hash and data given are valid, you can always hash the block header data to get the same block hash. If anything is changed, including the nonce, the hash will change, invalidating the block (header).
Each valid nonce is dependent upon the data being hashed and the target difficulty according to the protocol.
But how large can the salt be?
unsigned int (source, look for
nNonce variable there).
The range of the salt (nonsense) is: 0 to 2^32.
Couldn't I just [...] to get a new salt [...] to find a suitable output [...]?
No, you couldn't. The problem is that a cryptographic hash function, such as SHA256, must have statistically significant uniform distribution. Such distribution results in an avalanche effect. In simple words, if you change just a single bit in the input, each of the output bits will change with a 50% chance.
It means that you mathematically cannot tweak an input, to get a desired output. You cannot predict which salt will result in the correct output. Your only choice is to try-check. Have a look at the "manual mining" demoed in this answer.