To address this question we first need to have a precise definition of what a "string" is.
The usual formalization is that we have an "alphabet" containing some finite number of symbols. The "alphabet" is not necessarily just letters of a language; for example, you could have an alphabet of $36$ symbols ($26$ letters and $10$ numeric digits) or an alphabet of
$1000$ symbols. A "string" is a sequence of these symbols, possibly with repetition.
A "string" can be as long as we want, so given any string there is always a longer one.
We could include strings of infinite length in our model, but (at least for now)
let's consider only strings of finite length.
Now observe that if you take the alphabet consisting of the ten decimal digits
0, 1, 2, 3, 4, 5, 6, 7, 8, and 9, make strings over this alphabet, and then write
a decimal point before the first symbol of each of these strings, we have all the
terminating decimal fractions in the interval $[0,1).$
Now, if this set were strictly ordered by numeric value, we'd be almost done.
Unfortunately, these terminating decimal fractions include many that end with
one or more zeros, and these are numerically equal to decimals with fewer digits.
So for any terminating decimal with trailing zeros, count the number of trailing zeros
and write that number before the decimal point. For example, in this way
the string "123000" corresponds to the number $3.123.$
Use this as a rule to define a mapping $f$ from strings over the decimal digits
to rational numbers. Every string over this alphabet is
mapped to a unique number (different from any other string).
Now if $X$ and $Y$ are any two strings over this alphabet, say that
$X < Y$ if $f(X) < f(Y).$
Now observe that any decimal number $x$ with a finite number of digits
is equal to $f(X)$ for some string $X$ of decimal digits;
specifically, $X$ consists of all the digits of $x$ after the decimal point
(excluding any trailing zeros), followed by $\lfloor x \rfloor$ zeros.
Between any two terminating decimal numbers there is another terminating decimal number.
Therefore, for any strings $X$ and $Z$ such that $X < Z,$
there is a terminating decimal number $y$ such that $f(X) < y < f(Z).$
Construct the string $Y$ such that $f(Y) = y,$ and we have $X < Y < Z.$
Any other alphabet can be handled in a similar way. For an alphabet of $N$ symbols,
give each symbol a unique value in the range $0$ to $N-1,$ and define the ordering
of strings as we did for the ten decimal digits, but using a base-$N$ representation
instead of base $10$ if $N \neq 10.$
There are some slight complications if we allow infinitely long strings.
By the way, what if we don't explicitly stipulate that our alphabet has a
finite number of symbols? Finite alphabets are the norm for theory-of-computing
exercises (or at least they were when I studied that field), and this makes sense
if we imagine that each symbol must be written in a fixed number of bits of memory
in a computer, such as $8$-bit ANSI strings.
But there are encodings that allow different "characters" to be encoded in different
numbers of bits; for example, Unicode has several $8$-bit characters, then a larger
number of $16$-bit characters, and $24$-bit characters as well. We could define
an "infinitely-extended Unicode" encoding that repeated this pattern to simply
increase the size of the next group of characters by $8$ bits, indefinitely.
And we could then define the order of the characters of this alphabet so that
there is always an $8n+8$-bit character that comes lexically before any
character of $8n$ or fewer bits. Using such an alphabet, there would be
a string that comes lexically between "4a" and "4a0", and other strings that
come lexically between any two other strings we might choose as counterexamples.
But infinite strings and infinite alphabets are a digression. Finite strings over
finite alphabets are interesting enough for the purpose of this question.