Is there a procedure for obtaining all knots in S^3? (Just to be precise, in this question, the word "knot" means "ambient isotopy class of a (EDIT: smooth) knot in $S^3$.") A knot in $S^3$ is called prime if it is not the connected sum of two other non-trivial knots in $S^3$. Clearly any knot is a sum of prime knots, and it is a theorem that this decomposition is unique. One downside of this is that there are infinitely many prime knots (for example, all non-trivial torus knots are prime). Here's a vague version of the question - Is there a way to trade off the uniqueness result (and add finitely many operations) in exchange for starting with a finite list of knots?
To try to make my question a little more precise, I'll define an "operation" as a function that takes a list of knots as input and outputs a finite list of knots. I'm not sure how to say this well, but I'd like to avoid very dumb operations like "fix an ordered list of all knots $K_1,K_2,\ldots$ and if $K_i$ is input, output $K_{i+1}$." However, I am interested in dumb answers, just not as dumb as that :-)

Is there finite list of knots $L$ and a finite list of operations $O$ on knots with the property that if $S$ is the smallest set of knots which contains $L$ and is closed under the operations $O$, then $S$ contains all knots?

For example, the first paragraph, phrased in this language, is 
L = all prime knots
O = input two knots and output their connected sum
S = all knots
 A: If you allow yourself to consider knotted trivalent graphs, instead of just knots, then you can start with just the tetrahedron and Mobius bands, and use the operations unzip, bubbling, and connect sum to get all knotted trivalent graphs.  This result is due to Dylan Thurston and Dror Bar-Natan and is written up by Dylan in a GT monograph.  Their motivation was the lack of a good candidate for an answer to your question which stayed entirely in the language of knots.  However for many situations KTGs are just as good as knots (e.g. click on a random link at Dror's wiki).
A: The knot tabulations do something like this. First they generate all planar 4-valent graphs (with a given number of vertices). Then they replace each vertex with an over and an under crossing. This set contains all link diagrams with the given number of crossings. Then what you do next depends on what you are interested in.
http://pzacad.pitzer.edu/~jhoste/HosteWebPages/downloads/Enumeration.pdf
The procedure for generating planar 4-valent graphs is I think the type of procedure you are asking for. It is implemented in nauty
A: There is a refinement of the connect-sum decomposition called 'satellite operation' or 'splicing'.  Like the connect-sum operation, it's originally due to Schubert, although Schubert didn't prove a uniqueness theorem.  That came much later with the JSJ-decomposition. 
Unfortunately, this consists of infinitely-many operations.  You could think of it as one operation that takes as input $n$ knots and an $(n+1)$-component link $L = (L_0, L_1, \cdots, L_n)$ such that the sublink $(L_1, \cdots, L_n)$ is trivial.  You also demand that the complement of $L$ in $S^3$ is either Seifert-fibred or hyperbolic.   It's also an essentially unique decomposition (like the connect-sum decomposition) -- the link is well defined but the indexing of the knots is only unique up to the symmetry group of the link $L$.  

This is called the Whitehead double of a figure-8 knot.  The link $W$ (in the $\mathbb G_K$ diagram) is the Whitehead link, the input knot (only one) is the figure-8 knot. 
For these definitions there is a framing convention, twisted Whitehead doubles would decompose as:


This doesn't have a standard name.  I like to call it a "(twisted) Borromean double".  The input link is the Borromean rings (technically, a twisted version of them), and the input knots are two trefoils.  Another example:

This decomposition also applies to links in $S^3$.  Here is a picture of the decomposition in an interesting case: 

