1 Introduction
The “Four Fours" puzzle is quite a fun activity. It can be an enjoyable time filler while waiting for food in a restaurant, or a group activity in a class.
The task is simple: for each number from $1$ to $100$ come up with an expression that evaluates to that number. In the expression, the only digit that can occur is $4$, and it must occur exactly $4$ times.
Other symbols are fine: $+$, $$, $\times $, $\xf7$, $()$. Also allowed are $!$ (factorial), $\sqrt{\phantom{4}}$ (square root), $.$ (decimal point), $\dot{\phantom{4}}$ (recurring dot), and powers (but the exponent is part of the expression and so can only have $4$s). Lastly, we're allowed to concatenate, meaning that we can get, for example, $44$.
It's a good puzzle. There's lots of scope for testing numeracy skills, with a fair dash of imagination as well. It's well scaffolded as finding an expression for one number will often provoke ideas for others.
But whenever I encounter it, I find myself wondering if there's a systematic way to find the expressions. I also find that there's a problem with it as a group activity since it can be hard to identify the difficulty of the different numbers and so to steer students to particular ones.
So I finally decided to sit down and work my way through the puzzle, finding expressions for all numbers from $1$ to $100$. But my goal was not so much to find the expressions, but to classify them.
2 One Four
As we'll see, it's possible to “waste" a four or two so the stricture on having precisely four $4$s in an expression is not actually prohibitive. In addition, an expression with four $4$s might be built by combining expressions with fewer, so it's worth looking at what can be made with fewer $4$s. We start with a single $4$.
In terms of whole numbers, there are three that are useful:
$$\sqrt{4}=2,\phantom{\rule{1em}{0ex}}$$ 
We could keep taking square roots, but it's unlikely that an irrational number will be of any use. We could also keep applying the factorial function, but $24!$ is very large and it's unlikely that it will be of use in constructing numbers between $1$ and $100$. Lastly, combining the two doesn't give any new numbers since $2!=2$.
There are also three fractions that we can get using the decimal point. These are:
$$.4=\frac{2}{5},\phantom{\rule{1em}{0ex}}$$ 
Note that we have to be careful to write $.4$ and not $0.4$ due to the rules on digits. These turn out to be very powerful pieces in making other numbers.
3 Two Fours
With two fours at our disposal, much more is possible because we can bring the binary operations ($+$, $$, $\times $, $\xf7$, and powers) into play. For each pair of the six numbers we made with a single four, we can feed them into each of the four operations and make new numbers. This leads to approximately $100$ numbers (if we throw out negatives), although there will be a few repeats among them.
For whole numbers, we get:


There are a couple of key observations to make from this list. The first is that the presence of $0$, $1$, and $4$ on this list means that it is always possible to “waste" two $4$s and almost always possible to “waste" a single $4$ (the caveat here is that to waste a single $4$ then the expression must contain a genuine $4$ as opposed to a $4$ appearing as a digit; thus we can replace $4!$ by $(\sqrt{4}+\sqrt{4})!$ to waste a $4$ but we can't do anything similar with $44$).
The second is that there are a few missing numbers from that list. As it was generated by feeding $\sqrt{4}$, $4$, and $4!$ into the operations $+$, $$, $\times $, and $\xf7$ then it misses a few numbers that can be obtained by other means. Specifically, we can apply $\sqrt{\cdot}$ and $!$ to the any of these numbers to generate a new one; it's only worth doing that with $(\sqrt{4}+\sqrt{4})$ to get $(\sqrt{4}+\sqrt{4})!=24$ (this is really an example of wasting a $4$). A new method, not available before, is to concatenate two $4$s to get $44$.
The third is that as we've used two $4$s to get each number in this list, we can combine any two of these via a binary operation (one of $+$, $$, $\times $, or $\xf7$) to get a new number. In particular, as we have all the numbers from $0$ to $6$, whenever we can get to, say, $n$ in two $4$s then we can get everything from $n6$ to $n+6$. As we have $0$, $12$, $24$, $36$, $48$, and $60$ we therefore have everything from $0$ to $66$ (with some overlap, of course). From $96$ we get everything from $90$ to $100$ (well, $102$ in fact). Thus the zone to focus on is between $66$ and $89$. We can get some of the missing ones by adding and subtracting numbers from the above list. Building up from $60$, this nets us $68$, $69$, $70$, $72$, $76$, $80$, $82$, $84$, $86$, $88$. Heading down from $96$, we sweep up $87$ and $74$. We can pick off the remaining even number as $54+24$.
This leaves $67$, $71$, $73$, $75$, $77$, $79$, $81$, $83$, $85$, and $89$.
4 Three Fours
To get the remaining numbers, we need to build expressions using three $4$s. This is more restrictive as then we have only one remaining $4$ to adjust our total. For example, although we can get to $80$ in three $4$s which is right in the middle of our remaining numbers, it isn't much help as we can only adjust by $\sqrt{4}$, $4$, or $4!$ using our remaining $4$. So we need to get to an odd number in three.
Getting to an odd number is not so straightforward since most of our numbers made so far are even. The odd numbers that we have come from fractions with $.4$, $.\dot{4}$, or $\sqrt{.\dot{4}}$ in the denominator so that's a good place to start. We want to end up in the $80$s, so the following list is a reasonable start:
$$\begin{array}{rl}81& =4!\xf7\sqrt{.\dot{4}}\xf7.\dot{4}\\ & =(4\xf7.\dot{4}{)}^{\sqrt{4}}\\ 65& =(4!+\sqrt{4})\xf7.4\\ \end{array}$$ 
Each of these allows us to waste a $4$ and we can add or subtract $\sqrt{4}$, $4$, and $4!$ which means that this gets us $67$ and $89$ from $65$; and $77$, $79$, $81$, $83$, and $85$ from $81$.
We're left with $71$, $73$, and $75$. The first two are a little tricky as they are prime, but they are $1$ away from $72$ which is easy to get with three $4$s using a division. The key is then to realise that as we're already doing a division, we can throw in another division without using as many $4$s as first glance would demand.
$$\begin{array}{rl}71& =\frac{4!+4!}{\sqrt{.\dot{4}}}\frac{\sqrt{.\dot{4}}}{\sqrt{.\dot{4}}}\\ & =\frac{4!+4!\sqrt{.\dot{4}}}{\sqrt{.\dot{4}}}\\ 73& =\frac{4!+4!+\sqrt{.\dot{4}}}{\sqrt{.\dot{4}}}\end{array}$$ 
This trick can be adapted to make $75$:
$$75=\frac{4!+4!+\sqrt{4}}{\sqrt{.\dot{4}}}$$ 
And that's the lot.
5 Why Bother?
Admittedly, my main aim in working through all of these was to find out a set of answers to the four fours puzzle and to see whether it was possible to figure out a systematic approach. When this is set as a puzzle, it is common to see students approach it in an ad hoc fashion. This is quite probably the right setting for it as a puzzle as encouraging students to approach it systematically could dampen their enthusiasm. However, it is useful if the puzzle setter is aware of the structure of the answers as then they can direct the students' attention more productively. One of the problems with setting this puzzle to a group of students is that there is a tendency for everyone to look first at the easy numbers. As they get picked off, it gets harder to make contributions and only the better students will be able to do so. By directing the quicker students' attention, or by selectively feeding key pieces of information to certain students, more can be kept engaged for longer.
Here are some suggestions.

Put bounties on the odd numbers over $60$.

Some numbers can be obtained in more than one way, reward different solutions as well as initial solutions. Even make it a competition to find which numbers have the most solutions.
This could go further and solutions could be ranked as to their complexity.

The secret of the square root and the factorial are so essential that it is best if everyone knows about them early on, but $.4$ and $.\dot{4}$ can be revealed to select students later on.

The original challenge goes up to $100$. What's the smallest number you can't get (my guess is $103=96+7$)?

If some students are running away with it, encourage them to work systematically.
I'm sure that other ways of differentiating the puzzle are possible, but those are the ones that occurred to me after analysing the solutions. So analysing the puzzle in a more mathematical fashion has achieved the following:

I can stop thinking about it.

I can make it a more interesting puzzle next time I set it.

There are some interesting onward questions that I might look into some time in the future.
All worthy achievements (especially the first one).